RM1GET          SEQUENTIAL SPECIFIC GET                          21-AUG-1978 21:39:29   VAX-11 MACRO X0.3-11               Page   0

TABLE OF CONTENTS   



   (1)      39  DECLARATIONS

   (1)      66  RM$GET1/RM$FIND1  -  SEQ. $GET & $FIND

   (1)     325  RM$SEQKEY  -  ROUTINE TO CONVERT REC NO. TO RFA

RM1GET          SEQUENTIAL SPECIFIC GET                          21-AUG-1978 21:39:29   VAX-11 MACRO X0.3-11               Page   1

016                                                                                                                              (1)



                                     0000     1 	$BEGIN RM1GET,016,$RMS1,<SEQUENTIAL SPECIFIC GET>,<NOWRT,QUAD>

                                     0000     2 ;

                                     0000     3 ; COPYRIGHT (C) 1977

                                     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 SEQUENTIAL 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-FEB-77

                                     0000    32 ;

                                     0000    33 ; MODIFIED BY:

                                     0000    34 ;

                                     0000    35 ;	L F LAVERDURE,   9-JUN-78  11:22

                                     0000    36 ; 01	- 

                                     0000    37 ;--

RM1GET          SEQUENTIAL SPECIFIC GET                          21-AUG-1978 21:39:29   VAX-11 MACRO X0.3-11               Page   2

016             DECLARATIONS                                                                                                     (1)



                                     0000    39 	.SBTTL	DECLARATIONS

                                     0000    40 ;

                                     0000    41 ; INCLUDE FILES:

                                     0000    42 ;

                                     0000    43 

                                     0000    44 ;

                                     0000    45 ; MACROS:

                                     0000    46 ;

                                     0000    47 	$IRBDEF

                                     0000    48 	$IFBDEF

                                     0000    49 	$RABDEF

                                     0000    50 	$FABDEF

                                     0000    51 	$DEVDEF

                                     0000    52 	$RMSDEF

                                     0000    53 	.LIST MEB

                                     0000    54 

                                     0000    55 ;

                                     0000    56 ; EQUATED SYMBOLS:

                                     0000    57 ;

                           00000020  0000    58 	BKP=IRB$L_BKPBITS*8

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

                                     0000    60 

                                     0000    61 ;

                                     0000    62 ; OWN STORAGE:

                                     0000    63 ;

                                     0000    64 

RM1GET          SEQUENTIAL SPECIFIC GET                          21-AUG-1978 21:39:29   VAX-11 MACRO X0.3-11               Page   3

016             RM$GET1/RM$FIND1  -  SEQ. $GET & $FIND                                                                           (1)



                                     0000    66 	.SBTTL RM$GET1/RM$FIND1  -  SEQ. $GET & $FIND

                                     0000    67 ;++

                                     0000    68 ; FUNCTIONAL DESCRIPTION:

                                     0000    69 ;

                                     0000    70 ; THIS MODULE PERFORMS THE FOLLOWING FUNCTIONS:

                                     0000    71 ;

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

                                     0000    73 ;	2. FOR UNIT RECORD DEVICES CALLS RM$GET_UNIT_REC

                                     0000    74 ;	   OTHERWISE, PERFORMS ADDITIONAL SETUP AND CALLS RM$GET_BLK_DEV

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

                                     0000    76 ;

                                     0000    77 ;

                                     0000    78 ; CALLING SEQUENCE:

                                     0000    79 ;

                                     0000    80 ;	ENTERED VIA CASE BRANCH FROM RMS$GET

                                     0000    81 ;	OR RMS$FIND AT RM$GET1 OR RM$FIND1 RESPECTIVELY.

                                     0000    82 ;

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

                                     0000    84 ;

                                     0000    85 ;

                                     0000    86 ; INPUT PARAMETERS:

                                     0000    87 ;

                                     0000    88 ;	R11	IMPURE AREA ADDRESS

                                     0000    89 ;	R10	IFAB ADDRESS

                                     0000    90 ;	R9	IRAB ADDRESS

                                     0000    91 ;	R8	RAB ADDRESS

                                     0000    92 ;

                                     0000    93 ;

                                     0000    94 ; IMPLICIT INPUTS:

                                     0000    95 ;

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

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

                                     0000    98 ;

                                     0000    99 ; OUTPUT PARAMETERS:

                                     0000   100 ;

                                     0000   101 ;	R7 - R1		DESTROYED

                                     0000   102 ;	R0		STATUS

                                     0000   103 ;

                                     0000   104 ;

                                     0000   105 ; IMPLICIT OUTPUTS:

                                     0000   106 ;

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

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

                                     0000   109 ;

                                     0000   110 ;	THE IRAB IS SIMILARLY UPDATED.

                                     0000   111 ;

                                     0000   112 ;

                                     0000   113 ; COMPLETION CODES:

                                     0000   114 ;

                                     0000   115 ;	STANDARD RMS (SEE FUNCTIONAL SPEC).

                                     0000   116 ;

                                     0000   117 ; SIDE EFFECTS:

                                     0000   118 ;

                                     0000   119 ;	NONE

                                     0000   120 ;--

RM1GET          SEQUENTIAL SPECIFIC GET                          21-AUG-1978 21:39:29   VAX-11 MACRO X0.3-11               Page   4

016             RM$GET1/RM$FIND1  -  SEQ. $GET & $FIND                                                                           (1)



                                     0000   122 RM$GET1::

                                     0000   123 	$TSTPT	GET1

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

                       22 A8     B4  0006   124 	CLRW	RAB$W_RSZ(R8)			; INIT THE RSZ FIELD

                                     0009   125 ;

                                     0009   126 ; MAKE USER INPUT VALID CHECKS

                                     0009   127 ;

                                     0009   128 RM$FIND1::

                                     0009   129 	$TSTPT	FIND1

                 00000200'9F     D6  0009       		INCL	@#PIO$GL_FMLH+512+TPT$L_FIND1

                       42 A9     B4  000F   130 	CLRW	IRB$W_CSIZ(R9)			; CLEAR CURRENT RECORD SIZE

                                     0012   131 						; INDICATES NO CURRENT RECORD

                                     0012   132 ;

                                     0012   133 ; CHECK FOR UNIT RECORD DEVICE AND IF SO DISPATCH TO APPROPRIATE CODE

                                     0012   134 ;

                                     0012   135 	ASSUME	DEV$V_REC EQ 0

            0E            6A     E8  0012   136 	BLBS	IFB$L_PRIM_DEV(R10),GET_UR	; BRANCH IF UNIT RECORD

                                     0015   137 ;

                                     0015   138 ;  FILES ORIENTED DEVICE  -  DISPATCH ON RECORD ACCESS TYPE

                                     0015   139 ;

                                     0015   140 	CASE	TYPE=B, SRC=RAB$B_RAC(R8),-

                                     0015   141 		DISPLIST=<GETSEQ,GETKEY,GETRFA>

            00         1E A8     8F  0015       	CASEB	RAB$B_RAC(R8),#0,S^#<<30001$-30000$>/2>-1

                          02'        0019       

                                     001A       30000$:

                               007E' 001A       	.WORD	GETSEQ-30000$

                               0029' 001C       	.WORD	GETKEY-30000$

                               002F' 001E       	.WORD	GETRFA-30000$

                                     0020       30001$:

                                     0020   142 ERRRAC:	$PSECT_BR	L$RMS1

                          FFDD'  31  0020       		BRW	L$RMS10

                                     0023       		.SAVE

                                 00000000       		.PSECT	L$RMS1,GBL,NOWRT

                                     0000       L$RMS10:

                                     0000   143 	RMSERR	RAC

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

                          13     11  0005   144 	BRB	GETXIT_BR

                                     0007   145 	$PSECT_RESTORE

                                 00000023       		.RESTORE

                                     0023   146 

                                     0023   147 ;++

                                     0023   148 ;

                                     0023   149 ;  GET FOR UNIT RECORD DEVICE

                                     0023   150 ;

                                     0023   151 ;--

                                     0023   152 	ASSUME	RAB$C_SEQ EQ 0

                       1E A8     95  0023   153 GET_UR:	TSTB	RAB$B_RAC(R8)			; ALLOW SEQUENTIAL ACCESS ONLY

                          F8     12  0026   154 	BNEQ	ERRRAC				; BRANCH ON ERROR

                          FFD5'  30  0028   155 	BSBW	RM$GET_UNIT_REC			; PERFORM UNIT RECORD GET

                          0075   31  002B   156 	BRW	GETXIT				; AND BRANCH TO GET EXIT

RM1GET          SEQUENTIAL SPECIFIC GET                          21-AUG-1978 21:39:29   VAX-11 MACRO X0.3-11               Page   5

016             RM$GET1/RM$FIND1  -  SEQ. $GET & $FIND                                                                           (1)



                                     002E   158 ;

                                     002E   159 ;	HANDLE	ERRORS

                                     002E   160 ;

            6A            18     E0  002E   161 ERRRFA:	BBS	#DEV$V_FOR,IFB$L_PRIM_DEV(R10),RFAOFF	; ALLOW LBN 0 FOR NFS OPERATION

                          2C         0031       

                                     0032   162 	$PSECT_BR	L$RMS1

                          FFD2'  31  0032       		BRW	L$RMS11

                                     0035       		.SAVE

                                 00000007       		.PSECT	L$RMS1,GBL,NOWRT

                                     0007       L$RMS11:

                                     0007   163 	RMSERR	RFA

            50       865C 8F     3C  0007       		MOVZWL	#<RMS$_RFA&^XFFFF>,R0

                          0C     11  000C   164 	BRB	GETXIT_BR

                                     000E   165 	$PSECT_RESTORE

                                 00000035       		.RESTORE

                                     0035   166 ERRIOP:	$PSECT_BR	L$RMS1

                          FFD6'  31  0035       		BRW	L$RMS12

                                     0038       		.SAVE

                                 0000000E       		.PSECT	L$RMS1,GBL,NOWRT

                                     000E       L$RMS12:

                                     000E   167 	RMSERR	IOP

            50       8574 8F     3C  000E       		MOVZWL	#<RMS$_IOP&^XFFFF>,R0

                          05     11  0013   168 	BRB	GETXIT_BR

                                     0015   169 	$PSECT_RESTORE

                                 00000038       		.RESTORE

            6A            2E     E1  0038   170 ERRSQO:	BBC	#IFB$V_PPF_INPUT,(R10),10$ ;BRANCH IF NOT 'INPUT'

                          04         003B       

            69            22     E1  003C   171 	BBC	#IFB$V_PPF_IMAGE,(R9),TSTRFA ;CONTINUE IF NOT IMAGE

                          19         003F       

                                     0040   172 10$:	$PSECT_BR	L$RMS1

                          FFD2'  31  0040       		BRW	L$RMS13

                                     0043       		.SAVE

                                 00000015       		.PSECT	L$RMS1,GBL,NOWRT

                                     0015       L$RMS13:

                                     0015   173 	RMSERR	SQO				;NOT SEQ. OPERATION

            50       86C4 8F     3C  0015       		MOVZWL	#<RMS$_SQO&^XFFFF>,R0

                                     001A   174 GETXIT_BR:

                          0086'  31  001A   175 	BRW	GETXIT

                                     001D   176 	$PSECT_RESTORE

                                 00000043       		.RESTORE

RM1GET          SEQUENTIAL SPECIFIC GET                          21-AUG-1978 21:39:29   VAX-11 MACRO X0.3-11               Page   6

016             RM$GET1/RM$FIND1  -  SEQ. $GET & $FIND                                                                           (1)



                                     0043   178 ;

                                     0043   179 ;  KEYED ACCESS TYPE

                                     0043   180 ;

                          FFBA'  30  0043   181 GETKEY:	BSBW	RM$SEQKEY		;CONVERT KEY TO RFA

            5A            50     E9  0046   182 	BLBC	R0,GETXIT		;GET OUT ON ERROR

                                     0049   183 ;

                                     0049   184 ;

                                     0049   185 ;  GET BY RFA

                                     0049   186 ;

                                     0049   187 ;  IF THIS IS A FIND, SAVE THE CURRENT NRP FOR LATER RESTORE

                                     0049   188 ;

            69            29     E1  0049   189 GETRFA:	BBC	#IRB$V_FIND,(R9),10$	;BRANCH IF NOT $FIND

                          04         004C       

                                     004D   190 	ASSUME	IRB$W_NRP_OFF EQ IRB$L_NRP_VBN+4

            7E         2C A9     7D  004D   191 	MOVQ	IRB$L_NRP_VBN(R9),-(SP)		;SAVE ALL NRP INFO KEEPING

                                     0051   192 						;STACK LONGWORD ALIGNED

                                     0051   193 ;

                                     0051   194 ;  CHECK FOR VALID RFA VALUE

                                     0051   195 ;

            6A            1C     E1  0051   196 10$:	BBC	#DEV$V_RND,IFB$L_PRIM_DEV(R10),ERRIOP ;BRANCH IF NO RANDOM ACCESS

                          E0         0054       

            6A            2D     E0  0055   197 	BBS	#IFB$V_SQO,(R10),ERRSQO		;BRANCH IF SQO SPECIFIED

                          DF         0058       

                       10 A8     D5  0059   198 TSTRFA:	TSTL	RAB$W_RFA(R8)			;ZERO RFA?

                          D0     13  005C   199 	BEQL	ERRRFA				;BRANCH IF YES

         38 AA         14 A8     B1  005E   200 RFAOFF:	CMPW	RAB$W_RFA+4(R8),IFB$W_DEVBUFSIZ(R10) ;OFFSET WITHIN A BLOCK?

                          C9     1E  0063   201 	BGEQU	ERRRFA				;BRANCH IF NOT

                                     0065   202 	ASSUME	IRB$W_NRP_OFF EQ IRB$L_NRP_VBN+4

         2C A9         10 A8     7D  0065   203 	MOVQ	RAB$W_RFA(R8),IRB$L_NRP_VBN(R9)	;COPY RFA TO NRP

                       32 A9     B4  006A   204 	CLRW	IRB$L_NRP_OFF+2(R9)		; GUARANTEE OFFSET VALID LONG WORD

                                     006D   205 ;

                                     006D   206 ;  DO FINAL SETUPS FOR RANDOM ACCESS GET.

                                     006D   207 ;  CLEAR LAST FIND AND EOF STATUS BITS.

                                     006D   208 ;

         04 A9            22     8A  006D   209 	BICB2	#<1@<IRB$V_FIND_LAST-BKP>>!-

                                     0071   210 		<1@<IRB$V_EOF-BKP>>,IRB$L_BKPBITS(R9)

                                     0071   211 ;

                                     0071   212 ;  DETERMINE NUMBER OF BLOCKS TO READ IN BASED UPON THE LONGEST RECORD

                                     0071   213 ;  IN THE FILE.

                                     0071   214 ;

         3E AA         30 A9     A1  0071   215 	ADDW3	IRB$W_NRP_OFF(R9),IFB$W_LRL(R10),R2	;COMPUTE TOTAL # BYTES NEEDED

                          52         0076       

            01         3C AA     91  0077   216 	CMPB	IFB$B_RFMORG(R10),#FAB$C_FIX	;FIXED LENGTH RECORDS?

                          03     13  007B   217 	BEQL	10$				;BRANCH IF YES

            52            02     A0  007D   218 	ADDW2	#2,R2				;ADD IN SIZE FIELD OVERHEAD

                          52     B7  0080   219 10$:	DECW	R2				;ROUND DOWN

            07            09     EF  0082   220 	EXTZV	#9,#7,R2,R2			;GET # BLKS - 1

            52            52         0085       

         41 A9            52     91  0087   221 	CMPB	R2,IRB$B_MBC(R9)		;< MBC?

                          13     1E  008B   222 	BGEQU	GETSQ1				;BRANCH IF NOT

            53            02     D0  008D   223 	MOVL	#2,R3				;SET FLAG FOR SHORT READ

                          FF6D'  30  0090   224 	BSBW	RM$GETRANDOM			;GO READ AND RETURN THE RECORD

                          0E     11  0093   225 	BRB	GETXIT				;ALL DONE

RM1GET          SEQUENTIAL SPECIFIC GET                          21-AUG-1978 21:39:29   VAX-11 MACRO X0.3-11               Page   7

016             RM$GET1/RM$FIND1  -  SEQ. $GET & $FIND                                                                           (1)



                                     0095   227 ;++

                                     0095   228 ;

                                     0095   229 ;  SEQUENTIAL ACCESS $GET

                                     0095   230 ;

                                     0095   231 ;--

                                     0095   232 	.ALIGN	LONG

                                     0098   233 GETSEQ:

            69            29     E0  0098   234 	BBS	#IRB$V_FIND,(R9),GETSQ1		;BRANCH IF DOING $FIND

                          04         009B       

            69            25     E0  009C   235 	BBS	#IRB$V_FIND_LAST,(R9),RESET_NRP	;BRANCH IF $FIND WAS LAST

                          11         009F       

                          FF5D'  30  00A0   236 GETSQ1:	BSBW	RM$GET_BLK_DEV			;GO GET THE RECORD

                                     00A3   237 ;++

                                     00A3   238 ;

                                     00A3   239 ; EXIT GET FUNCTION.  SET LAST-OPERATION-WAS-A-FIND STATUS AS REQUIRED.

                                     00A3   240 ;

                                     00A3   241 ;--

                                     00A3   242 GETXIT:	CSB	#IRB$V_FIND_LAST,(R9)		; CLEAR LAST-OPERATION WAS A FIND

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

                          00         00A6       

                                     00A7       30002$:

            69            29     E4  00A7   243 	BBSC	#IRB$V_FIND,(R9),FNDXIT		; BRANCH IF DOING A FIND

                          11         00AA       

            36            50     E9  00AB   244 CHKERR:	BLBC	R0,GETERR			; BRANCH ON ERROR

                          FF4F'  31  00AE   245 EXIT:	BRW	RM$EXRMS			; R0 STILL HAS SUC/ERR CODE

                                     00B1   246 

                                     00B1   247 ;++

                                     00B1   248 ;

                                     00B1   249 ;  THIS IS A $GET OPERATION AFTER A $FIND.  RESET NRP TO RP.

                                     00B1   250 ;

                                     00B1   251 ;--

                                     00B1   252 	ASSUME	IRB$W_RP_OFF EQ IRB$L_RP_VBN+4

                                     00B1   253 	ASSUME	IRB$W_NRP_OFF EQ IRB$L_NRP_VBN+4

                                     00B1   254 RESET_NRP:

         2C A9         34 A9     7D  00B1   255 	MOVQ	IRB$L_RP_VBN(R9),IRB$L_NRP_VBN(R9) ;RESET NRP

            69            21     E5  00B6   256 	BBCC	#IRB$V_EOF,(R9),GETSQ1		;MAKE SURE EOF FLAG OFF

                          E6         00B9       

                          E4     11  00BA   257 	BRB	GETSQ1				;REJOIN GET CODE

RM1GET          SEQUENTIAL SPECIFIC GET                          21-AUG-1978 21:39:29   VAX-11 MACRO X0.3-11               Page   8

016             RM$GET1/RM$FIND1  -  SEQ. $GET & $FIND                                                                           (1)



                                     00BC   259 ;++

                                     00BC   260 ;

                                     00BC   261 ;  EXITING FROM A $FIND.  CHECK FOR PROCESS-PERMANENT FILE SPECIAL PROCESSING

                                     00BC   262 ;  AND SETTING OF THE FIND_LAST FLAG AND RESTORING OF THE NRP.

                                     00BC   263 ;

                                     00BC   264 ;--

            0C            50     E9  00BC   265 FNDXIT:	BLBC	R0,10$				; BRANCH IF OPERATION FAILED

            69            2E     E4  00BF   266 	BBSC	#IRB$V_PPF_EOF,(R9),PPF_EOF	; BRANCH IF SYS$INPUT EOF

                          1E         00C2       

            69            2F     E4  00C3   267 	BBSC	#IRB$V_PPF_SKIP,(R9),PPF_SKIP	; OR MUST SKIP RECORD

                          0F         00C6       

                                     00C7   268 	SSB	#IRB$V_FIND_LAST,(R9)		; SET LAST OPR. WAS A FIND

            69            25     E2  00C7       		BBSS	#IRB$V_FIND_LAST,(R9),30003$

                          00         00CA       

                                     00CB       30003$:

                                     00CB   269 ;

                                     00CB   270 ; IF THE FIND WAS IN RANDOM MODE, RESTORE THE NRP DATA

                                     00CB   271 ;

                                     00CB   272 10$:

                                     00CB   273 	ASSUME	RAB$C_SEQ EQ 0

                       1E A8     95  00CB   274 	TSTB	RAB$B_RAC(R8)			; SEQUENTIAL MODE?

                          DB     13  00CE   275 	BEQL	CHKERR				; BRANCH IF YES

                                     00D0   276 ;

                                     00D0   277 ; RESTORE NRP TO PREVIOUS VALUE

                                     00D0   278 ;

         2C A9            8E     7D  00D0   279 	MOVQ	(SP)+,IRB$L_NRP_VBN(R9)

                          D5     11  00D4   280 	BRB	CHKERR				; REJOIN GET CODE

RM1GET          SEQUENTIAL SPECIFIC GET                          21-AUG-1978 21:39:29   VAX-11 MACRO X0.3-11               Page   9

016             RM$GET1/RM$FIND1  -  SEQ. $GET & $FIND                                                                           (1)



                                     00D6   282 ;++

                                     00D6   283 ;

                                     00D6   284 ;  IRB$V_PPF_SKIP WAS SET (NOW CLEAR)

                                     00D6   285 ;  THIS INDICATES THAT WE HAVE JUST SKIPPED OVER A $DECK RECORD ON SYS$INPUT.

                                     00D6   286 ;

                                     00D6   287 ;  RESTORE IRB$V_FIND FROM IRB$V_PPF_FNDSV AND REDO THE $FIND OR $GET.

                                     00D6   288 ;

                                     00D6   289 ;--

                                     00D6   290 PPF_SKIP:

            69            30     E5  00D6   291 	BBCC	#IRB$V_PPF_FNDSV,(R9),10$	; BRANCH IF NOT DOING $FIND

                          04         00D9       

                                     00DA   292 	SSB	#IRB$V_FIND,(R9)		; SET FIND BIT

            69            29     E2  00DA       		BBSS	#IRB$V_FIND,(R9),30004$

                          00         00DD       

                                     00DE       30004$:

                          FF28   31  00DE   293 10$:	BRW	RM$FIND1			; REDO $FIND OR $GET

                                     00E1   294 ;++

                                     00E1   295 ;

                                     00E1   296 ;  IRB$V_PPF_EOF WAS SET (NOW CLEAR).

                                     00E1   297 ;  THIS INDICATES THAT EITHER A $EOD OR USER-DEFINED EOD-STRING WAS SEEN

                                     00E1   298 ;  AND HAS BEEN SKIPPED.

                                     00E1   299 ;

                                     00E1   300 ;  CHANGE STATUS CODE TO RMS$_EOF

                                     00E1   301 ;

                                     00E1   302 ;--

                                     00E1   303 PPF_EOF:

                                     00E1   304 	$PSECT_BR	L$RMS1GET

                          FF1C'  31  00E1       		BRW	L$RMS1GET4

                                     00E4       		.SAVE

                                 00000000       		.PSECT	L$RMS1GET,GBL,NOWRT

                                     0000       L$RMS1GET4:

                                     0000   305 	RMSERR	EOF

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

                          07     11  0005   306 	BRB	EXIT2

                                     0007   307 	$PSECT_RESTORE

                                 000000E4       		.RESTORE

                                     00E4   308 ;++

                                     00E4   309 ;

                                     00E4   310 ;  AN ERROR HAS OCCURRED

                                     00E4   311 ;

                                     00E4   312 ;  UNLESS ERROR IS 'RTB', ZERO CURRENT RECORD SIZE

                                     00E4   313 ;

                                     00E4   314 ;--

                                     00E4   315 GETERR:	$PSECT_BR	L$RMS1GET

                          FF20'  31  00E4       		BRW	L$RMS1GET5

                                     00E7       		.SAVE

                                 00000007       		.PSECT	L$RMS1GET,GBL,NOWRT

                                     0007       L$RMS1GET5:

       81A8 8F            50     B1  0007   316 	CMPW	R0,#RMS$_RTB&^XFFFF		; WAS ERROR RTB?

                          0B     13  000C   317 	BEQL	EXIT1				; BRANCH IF YES

                       42 A9     B4  000E   318 EXIT2:	CLRW	IRB$W_CSIZ(R9)			; INVALIDATE CURRENT REC INDICATOR

         04 A9   0001C000 8F     CA  0011   319 	BICL2	#<1@<IRB$V_PPF_EOF-BKP>>!-

                                     0019   320 		 <1@<IRB$V_PPF_SKIP-BKP>>!-

                                     0019   321 		 <1@<IRB$V_PPF_FNDSV-BKP>>,IRB$L_BKPBITS(R9)	; CLEAN UP STATUS

                          FFE4'  31  0019   322 EXIT1:	BRW	RM$EXRMS

                                     001C   323 	$PSECT_RESTORE

                                 000000E7       		.RESTORE

RM1GET          SEQUENTIAL SPECIFIC GET                          21-AUG-1978 21:39:29   VAX-11 MACRO X0.3-11               Page  10

016             RM$SEQKEY  -  ROUTINE TO CONVERT REC NO. TO RFA                                                                  (1)



                                     00E7   325 	.SBTTL	RM$SEQKEY  -  ROUTINE TO CONVERT REC NO. TO RFA FOR SEQ. ORG

                                     00E7   326 ;++

                                     00E7   327 ;  FUNCTIONAL DESCRIPTION:

                                     00E7   328 ;

                                     00E7   329 ;	THIS ROUTINE CONVERTS A RECORD NUMBER TO AN RFA FOR FIXED LENGTH

                                     00E7   330 ;	RECORDS.

                                     00E7   331 ;

                                     00E7   332 ;  CALLING SEQUENCE:

                                     00E7   333 ;

                                     00E7   334 ;	BSBW	RM$SEQKEY

                                     00E7   335 ;

                                     00E7   336 ;  INPUT PARAMETERS:

                                     00E7   337 ;

                                     00E7   338 ;	R10	IFAB ADDRESS

                                     00E7   339 ;	R9	IRAB ADDRESS

                                     00E7   340 ;	R8	RAB ADDRESS

                                     00E7   341 ;

                                     00E7   342 ;	RAB$L_KBF	ADDRESS OF BUFFER HAVING THE RELATIVE RECORD

                                     00E7   343 ;			NUMBER (RRN)

                                     00E7   344 ;	RAB$B_KSZ	SIZE OF KEY (MUST BE 4 - DEFAULTED IF 0)

                                     00E7   345 ;

                                     00E7   346 ;  IMPLICIT INPUTS:

                                     00E7   347 ;

                                     00E7   348 ;	IFB$V_BLK	SET IF RECORDS CROSS BLOCK BOUNDARIES

                                     00E7   349 ;	IFB$W_MRS	FIXED RECORD LENGTH

                                     00E7   350 ;

                                     00E7   351 ;  OUTPUT PARAMETERS:

                                     00E7   352 ;

                                     00E7   353 ;	RAB$W_RFA	SET TO VBN AND OFFSET IN BLOCK FOR RECORD

                                     00E7   354 ;	R0		STATUS CODE

                                     00E7   355 ;	R1-R3		DESTROYED

                                     00E7   356 ;

                                     00E7   357 ;  COMPLETION CODES:

                                     00E7   358 ;

                                     00E7   359 ;	STANDARD RMS, IN PARTICULAR, RAC, KBF, KSZ, KEY, OR SUC.

                                     00E7   360 ;

                                     00E7   361 ;  SIDE EFFECTS:

                                     00E7   362 ;

                                     00E7   363 ;	NONE.

                                     00E7   364 ;

                                     00E7   365 ;--

                                 00000000   366 	.PSECT	$RMS1KEY,GBL,NOWRT

RM1GET          SEQUENTIAL SPECIFIC GET                          21-AUG-1978 21:39:29   VAX-11 MACRO X0.3-11               Page  11

016             RM$SEQKEY  -  ROUTINE TO CONVERT REC NO. TO RFA                                                                  (1)



                                     0000   368 RM$SEQKEY::

            01         3C AA     91  0000   369 	CMPB	IFB$B_RFMORG(R10),#FAB$C_FIX	;MUST BE FIXED RFM

                          54     12  0004   370 	BNEQ	ERRRAC1				;TOO BAD IF NOT

                                     0006   371 	IFNORD	#4,@RAB$L_KBF(R8),ERRKBF,IRB$B_MODE(R9) ;COMPATIBILITY PAINS

            04         0A A9     0C  0006       		PROBER	IRB$B_MODE(R9),#4,@RAB$L_KBF(R8)

                       30 B8         000A       

                          4F     13  000C       		BEQL	ERRKBF

                       34 A8     95  000E   372 	TSTB	RAB$B_KSZ(R8)			;DITTO

                          06     13  0011   373 	BEQL	10$				;DEFAULT BUFFER SIZE

            04         34 A8     91  0013   374 	CMPB	RAB$B_KSZ(R8),#4		;IF NOT DEFAULT MUST BE 4

                          47     12  0017   375 	BNEQ	ERRKSZ

                                     0019   376 ;

                                     0019   377 ;  PICK UP RECORD NUMBER GETTING RID OF BIAS (I.E., THERE IS NO RECORD 0)

                                     0019   378 ;

         30 B8            01     C3  0019   379 10$:	SUBL3	#1,@RAB$L_KBF(R8),R1		;RRN - 1

                          51         001D       

                          43     19  001E   380 	BLSS	ERRKEY				;BRANCH IF BAD

                                     0020   381 ;

                                     0020   382 ;  GET RECORD LENGTH, ROUNDING IT UP

                                     0020   383 ;

            50         4C AA     3C  0020   384 	MOVZWL	IFB$W_MRS(R10),R0		;GET FIXED REC LEN

                          50     D6  0024   385 	INCL	R0				;ROUND UP

            50            01     CA  0026   386 	BICL2	#1,R0				; "

            7E       0200 8F     3C  0029   387 	MOVZWL	#512,-(SP)			;USEFUL CONSTANT TO STACK

         3D AA            03     E0  002E   388 	BBS	#FAB$V_BLK,IFB$B_RAT(R10),BLKSET ;GET ALTERNATE CALC. IF

                          10         0032       

                                     0033   389 						;RECORDS DON'T CROSS BLOCK

                                     0033   390 						;BOUNDARIES

                                     0033   391 ;

                                     0033   392 ;  RECORDS CROSS BLOCK BOUNDARIES.

                                     0033   393 ;  COMPUTE BYTE ADDRESS OF RECORD IN FILE AND CONVERT TO VBN AND OFFSET.

                                     0033   394 ;

            51            50     7A  0033   395 	EMUL	R0,R1,(SP),R2			;COMPUTE BYTE ADDR

            52            6E         0036       

                                     0038   396 						;=(RRN - 1)*ROUNDED-REC-LEN+512

            52            8E     7B  0038   397 	EDIV	(SP)+,R2,RAB$W_RFA(R8),RAB$W_RFA+4(R8) ;COMPUTE VBN AND OFFSET

         14 A8         10 A8         003B       

                                     003F   398 						;(BYTE-ADDR/512)

                                     003F   399 SUCRET:	RMSSUC					; SHOW SUCCESS

            50            01     D0  003F       		MOVL	#1,R0

                                 05  0042   400 	RSB					;AND RETURN

RM1GET          SEQUENTIAL SPECIFIC GET                          21-AUG-1978 21:39:29   VAX-11 MACRO X0.3-11               Page  12

016             RM$SEQKEY  -  ROUTINE TO CONVERT REC NO. TO RFA                                                                  (1)



                                     0043   402 ;

                                     0043   403 ;  ALTERNATE CALCULATION FOR RECORDS NOT ALLOWED TO CROSS BLOCK BOUNDARIES

                                     0043   404 ;

                          52     D4  0043   405 BLKSET:	CLRL	R2				;ZERO EXTEND RRN-1

            8E            50     C7  0045   406 	DIVL3	R0,(SP)+,R3			;GET # RECS PER BLOCK

                          53         0048       

                                     0049   407 						;=512/ROUNDED-REC-LEN

            51            53     7B  0049   408 	EDIV	R3,R1,R1,R2			;COMPUTE VBN-1 (IN R1) 

            52            51         004C       

                                     004E   409 						;  AND REC # WITHIN BLK (IN R2)

                                     004E   410 						;=(RRN-1)/# RECS-PER-BLK

            51            01     C1  004E   411 	ADDL3	#1,R1,RAB$W_RFA(R8)		;STORE VBN

                       10 A8         0051       

            50            52     A5  0053   412 	MULW3	R2,R0,RAB$W_RFA+4(R8)		;AND OFFSET (=REC # WITHIN BLK

                       14 A8         0056       

                                     0058   413 						;  * ROUNDED-REC-LEN)

                          E5     11  0058   414 	BRB	SUCRET				;ALL SET

                                     005A   415 ;

                                     005A   416 ;  HANDLE ERRORS

                                     005A   417 ;

                                     005A   418 ERRRAC1: $PSECT_BR	L$RMS1

                          FFC0'  31  005A       		BRW	L$RMS16

                                     005D       		.SAVE

                                 0000001D       		.PSECT	L$RMS1,GBL,NOWRT

                                     001D       L$RMS16:

                                     001D   419 	RMSERR	RAC				;NOT FIXED LENGTH RECORDS

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

                                 05  0022   420 	RSB

                                     0023   421 	$PSECT_RESTORE

                                 0000005D       		.RESTORE

                                     005D   422 ;

                                     005D   423 ERRKBF:	$PSECT_BR	L$RMS1

                          FFC3'  31  005D       		BRW	L$RMS17

                                     0060       		.SAVE

                                 00000023       		.PSECT	L$RMS1,GBL,NOWRT

                                     0023       L$RMS17:

                                     0023   424 	RMSERR	KBF				;INVALID KEY BUFFER ADDR

            50       858C 8F     3C  0023       		MOVZWL	#<RMS$_KBF&^XFFFF>,R0

                                 05  0028   425 	RSB

                                     0029   426 	$PSECT_RESTORE

                                 00000060       		.RESTORE

                                     0060   427 ;

                                     0060   428 ERRKSZ:	$PSECT_BR	L$RMS1

                          FFC6'  31  0060       		BRW	L$RMS18

                                     0063       		.SAVE

                                 00000029       		.PSECT	L$RMS1,GBL,NOWRT

                                     0029       L$RMS18:

                                     0029   429 	RMSERR	KSZ				;BAD KEY SIZE (NOT 0 OR 4)

            50       85A4 8F     3C  0029       		MOVZWL	#<RMS$_KSZ&^XFFFF>,R0

                                 05  002E   430 	RSB

                                     002F   431 	$PSECT_RESTORE

                                 00000063       		.RESTORE

                                     0063   432 ;

                                     0063   433 ERRKEY:	$PSECT_BR	L$RMS1

                          FFC9'  31  0063       		BRW	L$RMS19

                                     0066       		.SAVE

                                 0000002F       		.PSECT	L$RMS1,GBL,NOWRT

RM1GET          SEQUENTIAL SPECIFIC GET                          21-AUG-1978 21:39:29   VAX-11 MACRO X0.3-11               Page  13

016             RM$SEQKEY  -  ROUTINE TO CONVERT REC NO. TO RFA                                                                  (1)



                                     002F       L$RMS19:

            6A            18     E1  002F   434 	BBC	#DEV$V_FOR,IFB$L_PRIM_DEV(R10),10$	; DEFINITE ERROR IF NOT FOR.

                          0B         0032       

                       30 B8     D5  0033   435 	TSTL	@RAB$L_KBF(R8)			; ATTEMPT TO READ LBN 0?

                          06     12  0036   436 	BNEQ	10$				; BRANCH IF NOT (ERROR)

                       10 A8     7C  0038   437 	CLRQ	RAB$W_RFA(R8)			; YES, ZERO LBN

                          0001'  31  003B   438 	BRW	SUCRET				; CONTINUE

                                     003E   439 10$:

                                     003E   440 	RMSERR	KEY				;BAD KEY VALUE (NOT > 0)

            50       8594 8F     3C  003E       		MOVZWL	#<RMS$_KEY&^XFFFF>,R0

                                 05  0043   441 	RSB

                                     0044   442 	$PSECT_RESTORE

                                 00000066       		.RESTORE

                                     0066   443 

                                     0066   444 	.END

RM1GET          SEQUENTIAL SPECIFIC GET                          21-AUG-1978 21:39:29   VAX-11 MACRO X0.3-11               Page  14

SYMBOL TABLE                                                                                                                     (1)



$$.PSECT_EP    = 0000000A            DEV$V_TRM      = 00000002            FAB$M_CTG      = 00100000            

$$RMSTEST      = 0000001A            DEV$V_WCK      = 0000001F            FAB$M_DEL      = 00000004            

$$RMS_PBUGCHK  = 00000010            ERRIOP           00000035 R     02   FAB$M_DFW      = 00000020            

$$RMS_TBUGCHK  = 00000008            ERRKBF           0000005D R     06   FAB$M_DLT      = 00008000            

$$RMS_UMODE    = 00000004            ERRKEY           00000063 R     06   FAB$M_DMO      = 00001000            

BIT...         = 0001C134            ERRKSZ           00000060 R     06   FAB$M_ESC      = 08000000            

BKP            = 00000020            ERRRAC           00000020 R     02   FAB$M_EXE      = 00000080            

BLKSET           00000043 R     06   ERRRAC1          0000005A R     06   FAB$M_FTN      = 00000001            

CHKERR           000000AB R     02   ERRRFA           0000002E R     02   FAB$M_GET      = 00000002            

DEV$M_ALL      = 00800000            ERRSQO           00000038 R     02   FAB$M_INP      = 00080000            

DEV$M_AVL      = 00040000            EXIT             000000AE R     02   FAB$M_JNL      = 00400000            

DEV$M_CCL      = 00000002            EXIT1            00000019 R     05   FAB$M_KFO      = 40000000            

DEV$M_DIR      = 00000008            EXIT2            0000000E R     05   FAB$M_MSE      = 00000010            

DEV$M_DMT      = 00200000            FAB$B_BID        00000000            FAB$M_MXV      = 00000002            

DEV$M_ELG      = 00400000            FAB$B_BKS        0000003E            FAB$M_NAM      = 01000000            

DEV$M_FOD      = 00004000            FAB$B_BLN        00000001            FAB$M_NEF      = 00000400            

DEV$M_FOR      = 01000000            FAB$B_DNS        00000035            FAB$M_NFS      = 00010000            

DEV$M_GEN      = 00020000            FAB$B_FAC        00000016            FAB$M_NIL      = 00000020            

DEV$M_IDV      = 04000000            FAB$B_FNS        00000034            FAB$M_OFP      = 20000000            

DEV$M_MBX      = 00100000            FAB$B_FSZ        0000003F            FAB$M_POS      = 00000100            

DEV$M_MNT      = 00080000            FAB$B_ORG        0000001D            FAB$M_PPF      = 00040000            

DEV$M_NET      = 00002000            FAB$B_RAT        0000001E            FAB$M_PPF_IND  = 00004000            

DEV$M_ODV      = 08000000            FAB$B_RFM        0000001F            FAB$M_PPF_RAT  = 00003FC0            

DEV$M_RCK      = 40000000            FAB$B_RTV        0000001C            FAB$M_PRN      = 00000004            

DEV$M_REC      = 00000001            FAB$B_SHR        00000017            FAB$M_PUT      = 00000001            

DEV$M_RND      = 10000000            FAB$C_BID      = 00000003            FAB$M_RCK      = 00800000            

DEV$M_RTM      = 20000000            FAB$C_BLN        00000050            FAB$M_RWC      = 00000800            

DEV$M_SDI      = 00000010            FAB$C_FIX      = 00000001            FAB$M_RWO      = 00000080            

DEV$M_SHR      = 00010000            FAB$C_HSH      = 00000030            FAB$M_SCF      = 00004000            

DEV$M_SPL      = 00000040            FAB$C_IDX      = 00000020            FAB$M_SHRDEL   = 00000004            

DEV$M_SQD      = 00000020            FAB$C_MAXRFM   = 00000003            FAB$M_SHRGET   = 00000002            

DEV$M_SWL      = 02000000            FAB$C_REL      = 00000010            FAB$M_SHRPUT   = 00000001            

DEV$M_TRM      = 00000004            FAB$C_RFM_DFLT = 00000002            FAB$M_SHRUPD   = 00000008            

DEV$M_WCK      = 80000000            FAB$C_SEQ      = 00000000            FAB$M_SPL      = 00002000            

DEV$V_ALL      = 00000017            FAB$C_UDF      = 00000000            FAB$M_SQO      = 00000040            

DEV$V_AVL      = 00000012            FAB$C_VAR      = 00000002            FAB$M_SUP      = 00000004            

DEV$V_CCL      = 00000001            FAB$C_VFC      = 00000003            FAB$M_TEF      = 10000000            

DEV$V_DIR      = 00000003            FAB$K_BLN        00000050            FAB$M_TMD      = 00000010            

DEV$V_DMT      = 00000015            FAB$L_ALQ        00000010            FAB$M_TMP      = 00000008            

DEV$V_ELG      = 00000016            FAB$L_CTX        00000018            FAB$M_TRN      = 00000010            

DEV$V_FOD      = 0000000E            FAB$L_DEV        00000040            FAB$M_UFM      = 04000000            

DEV$V_FOR      = 00000018            FAB$L_DNA        00000030            FAB$M_UFO      = 00020000            

DEV$V_GEN      = 00000011            FAB$L_FNA        0000002C            FAB$M_UPD      = 00000008            

DEV$V_IDV      = 0000001A            FAB$L_FOP        00000004            FAB$M_UPI      = 00000040            

DEV$V_MBX      = 00000014            FAB$L_JNL        00000020            FAB$M_WCK      = 00000200            

DEV$V_MNT      = 00000013            FAB$L_MRN        00000038            FAB$S_ORG      = 00000004            

DEV$V_NET      = 0000000D            FAB$L_NAM        00000028            FAB$S_PPF_RAT  = 00000008            

DEV$V_ODV      = 0000001B            FAB$L_SDC        00000044            FAB$V_BIO      = 00000005            

DEV$V_RCK      = 0000001E            FAB$L_STS        00000008            FAB$V_BLK      = 00000003            

DEV$V_REC      = 00000000            FAB$L_STV        0000000C            FAB$V_BRO      = 00000006            

DEV$V_RND      = 0000001C            FAB$L_XAB        00000024            FAB$V_CBT      = 00000015            

DEV$V_RTM      = 0000001D            FAB$M_BIO      = 00000020            FAB$V_CIF      = 00000019            

DEV$V_SDI      = 00000004            FAB$M_BLK      = 00000008            FAB$V_CR       = 00000001            

DEV$V_SHR      = 00000010            FAB$M_BRO      = 00000040            FAB$V_CTG      = 00000014            

DEV$V_SPL      = 00000006            FAB$M_CBT      = 00200000            FAB$V_DEL      = 00000002            

DEV$V_SQD      = 00000005            FAB$M_CIF      = 02000000            FAB$V_DFW      = 00000005            

DEV$V_SWL      = 00000019            FAB$M_CR       = 00000002            FAB$V_DLT      = 0000000F            

RM1GET          SEQUENTIAL SPECIFIC GET                          21-AUG-1978 21:39:29   VAX-11 MACRO X0.3-11               Page  15

SYMBOL TABLE                                                                                                                     (1)



FAB$V_DMO      = 0000000C            IFB$B_AVBN       00000058            IFB$M_DEL      = 00000004            

FAB$V_ESC      = 0000001B            IFB$B_BID        00000008            IFB$M_EXE      = 00000080            

FAB$V_EXE      = 00000007            IFB$B_BKS        0000004A            IFB$M_GET      = 00000002            

FAB$V_FTN      = 00000000            IFB$B_BLN        00000009            IFB$M_PUT      = 00000001            

FAB$V_GET      = 00000001            IFB$B_EFN        0000000B            IFB$M_TRN      = 00000010            

FAB$V_INP      = 00000013            IFB$B_EXTRABUF   0000005D            IFB$M_UPD      = 00000008            

FAB$V_JNL      = 00000016            IFB$B_FAC        00000022            IFB$S_ORG      = 00000004            

FAB$V_KFO      = 0000001E            IFB$B_FSZ        0000004B            IFB$S_RFM      = 00000004            

FAB$V_MSE      = 00000004            IFB$B_KBUFSZ     0000005C            IFB$V_ACCESSED = 00000025            

FAB$V_MXV      = 00000001            IFB$B_MODE       0000000A            IFB$V_ANSI_D   = 00000026            

FAB$V_NAM      = 00000018            IFB$B_NUM_KEYS   0000005A            IFB$V_ASYNC    = 00000023            

FAB$V_NEF      = 0000000A            IFB$B_ORGCASE    00000023            IFB$V_ASYNCWAIT= 00000024            

FAB$V_NFS      = 00000010            IFB$B_RAT        0000003D            IFB$V_BIO      = 00000005            

FAB$V_NIL      = 00000005            IFB$B_RFMORG     0000003C            IFB$V_BRO      = 00000006            

FAB$V_OFP      = 0000001D            IFB$B_UBUFSZ     0000005B            IFB$V_BUSY     = 00000020            

FAB$V_ORG      = 00000004            IFB$C_BID      = 0000000B            IFB$V_CREATE   = 00000032            

FAB$V_POS      = 00000008            IFB$C_BLN        00000060            IFB$V_DAP      = 0000003E            

FAB$V_PPF      = 00000012            IFB$C_BLN_IDX    00000060            IFB$V_DAP_OPEN = 0000003D            

FAB$V_PPF_IND  = 0000000E            IFB$C_BLN_REL    00000060            IFB$V_DEL      = 00000002            

FAB$V_PPF_RAT  = 00000006            IFB$C_BLN_SEQ    0000005C            IFB$V_DFW      = 0000002C            

FAB$V_PRN      = 00000002            IFB$C_DIR      = 00000003            IFB$V_DLT      = 0000002B            

FAB$V_PUT      = 00000000            IFB$C_FHAEND     00000050            IFB$V_DMO      = 00000028            

FAB$V_RCK      = 00000017            IFB$C_IDX      = 00000002            IFB$V_EOF      = 00000021            

FAB$V_RWC      = 0000000B            IFB$C_MAXORG   = 00000002            IFB$V_EXE      = 00000007            

FAB$V_RWO      = 00000007            IFB$C_REL      = 00000001            IFB$V_GET      = 00000001            

FAB$V_SCF      = 0000000E            IFB$C_SEQ      = 00000000            IFB$V_MSE      = 00000031            

FAB$V_SHRDEL   = 00000002            IFB$K_BLN        00000060            IFB$V_NORECLK  = 00000033            

FAB$V_SHRGET   = 00000001            IFB$K_BLN_IDX    00000060            IFB$V_NSP      = 0000003F            

FAB$V_SHRPUT   = 00000000            IFB$K_BLN_REL    00000060            IFB$V_NWA      = 0000003C            

FAB$V_SHRUPD   = 00000003            IFB$K_BLN_SEQ    0000005C            IFB$V_ORG      = 00000004            

FAB$V_SPL      = 0000000D            IFB$K_FHAEND     00000050            IFB$V_PPF_IMAGE= 00000022            

FAB$V_SQO      = 00000006            IFB$L_ARGLST     00000018            IFB$V_PPF_INPUT= 0000002E            

FAB$V_SUP      = 00000002            IFB$L_ASBADDR    00000014            IFB$V_PUT      = 00000000            

FAB$V_TEF      = 0000001C            IFB$L_AS_DEV     00000054            IFB$V_RFM      = 00000000            

FAB$V_TMD      = 00000004            IFB$L_BDB_BLNK   00000034            IFB$V_RWC      = 00000027            

FAB$V_TMP      = 00000003            IFB$L_BDB_FLNK   00000030            IFB$V_RW_ATTR  = 00000034            

FAB$V_TRN      = 00000004            IFB$L_BKPBITS    00000004            IFB$V_SCF      = 0000002A            

FAB$V_UFM      = 0000001A            IFB$L_BWB        0000000C            IFB$V_SPL      = 00000029            

FAB$V_UFO      = 00000011            IFB$L_DVBN       00000058            IFB$V_SQO      = 0000002D            

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

FAB$V_UPI      = 00000006            IFB$L_FRB_PTR    00000028            IFB$V_TMP      = 00000035            

FAB$V_WCK      = 00000009            IFB$L_FWA_BDB    00000050            IFB$V_TRN      = 00000004            

FAB$W_BLS        0000003C            IFB$L_HBK        00000040            IFB$V_UPD      = 00000003            

FAB$W_DEQ        00000014            IFB$L_IDX_PTR    00000054            IFB$V_WRTACC   = 00000030            

FAB$W_IFI        00000002            IFB$L_IOS        0000000C            IFB$W_ASDEVBSIZ  0000005A            

FAB$W_MRS        00000036            IFB$L_IOS4       00000010            IFB$W_BKS_BYTES  0000005C            

FNDXIT           000000BC R     02   IFB$L_IRAB_LNK   0000001C            IFB$W_BKS_RECS   0000005E            

GBL...         = 00000000            IFB$L_LAST_FAB   00000024            IFB$W_CHNL       00000020            

GETERR           000000E4 R     02   IFB$L_LOCK_BDB   00000050            IFB$W_DEQ        0000004E            

GETKEY           00000043 R     02   IFB$L_MRN        00000054            IFB$W_DEVBUFSIZ  00000038            

GETRFA           00000049 R     02   IFB$L_NRP_LNK    00000050            IFB$W_EBK0       00000044            

GETSEQ           00000098 R     02   IFB$L_NWA_PTR    00000028            IFB$W_EBK2       00000046            

GETSQ1           000000A0 R     02   IFB$L_PRIM_DEV   00000000            IFB$W_FFB        00000048            

GETXIT           000000A3 R     02   IFB$L_RLB_LNK    0000002C            IFB$W_IOS2       0000000E            

GETXIT_BR        0000001A R     04   IFB$L_RNS_LEN    00000050            IFB$W_LRL        0000003E            

GET_UR           00000023 R     02   IFB$M_BIO      = 00000020            IFB$W_MRS        0000004C            

IFB$B_AMAX       00000059            IFB$M_BRO      = 00000040            IFB$W_RTDEQ      0000003A            

RM1GET          SEQUENTIAL SPECIFIC GET                          21-AUG-1978 21:39:29   VAX-11 MACRO X0.3-11               Page  16

SYMBOL TABLE                                                                                                                     (1)



IRB$B_BCNT       00000040            IRB$V_DAP_CONN = 0000003E            RAB$C_KEY      = 00000001            

IRB$B_BID        00000008            IRB$V_DAP_FMODE= 0000003F            RAB$C_RFA      = 00000002            

IRB$B_BLN        00000009            IRB$V_DUP      = 0000002C            RAB$C_SEQ      = 00000000            

IRB$B_EFN        0000000B            IRB$V_EOF      = 00000021            RAB$K_BLN        00000044            

IRB$B_KEYSZ      00000051            IRB$V_FIND     = 00000029            RAB$L_BKT        00000038            

IRB$B_MBC        00000041            IRB$V_FIND_LAST= 00000025            RAB$L_CTX        00000018            

IRB$B_MODE       0000000A            IRB$V_IDX_ERR  = 00000031            RAB$L_DCT        00000038            

IRB$B_NRP_ID     00000030            IRB$V_LOCKABOVE= 00000002            RAB$L_FAB        0000003C            

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

IRB$B_NVBNS      00000048            IRB$V_POSINSERT= 00000000            RAB$L_PBF        00000030            

IRB$B_POST_CCTL  00000045            IRB$V_PPF_EOF  = 0000002E            RAB$L_RBF        00000028            

IRB$B_PPF_ISI    0000003E            IRB$V_PPF_FNDSV= 00000030            RAB$L_RFA0       00000010            

IRB$B_PRE_CCTL   00000044            IRB$V_PPF_IMAGE= 00000022            RAB$L_RHB        0000002C            

IRB$B_RFA_ID     00000058            IRB$V_PPF_SKIP = 0000002F            RAB$L_ROP        00000004            

IRB$B_RP_ID      00000038            IRB$V_PUTS_LAST= 00000026            RAB$L_STS        00000008            

IRB$B_RP_KREF    00000039            IRB$V_RAHWBH   = 0000002A            RAB$L_STV        0000000C            

IRB$B_RRV_ID     00000050            IRB$V_SKIP_NEXT= 0000002B            RAB$L_UBF        00000024            

IRB$B_SRCHFLAGS  00000043            IRB$V_SRCHGT   = 00000001            RAB$M_ASY      = 00000001            

IRB$B_STOPLEVEL  00000042            IRB$V_UNLOCK_RP= 0000002D            RAB$M_BIO      = 00000800            

IRB$C_BID      = 0000000A            IRB$V_WRITE    = 00000029            RAB$M_CCO      = 80000000            

IRB$C_BLN_IDX    0000006C            IRB$W_CSIZ       00000042            RAB$M_CVT      = 04000000            

IRB$C_BLN_REL    00000048            IRB$W_DUP_POS    00000032            RAB$M_EOF      = 00000100            

IRB$C_BLN_SEQ    0000004C            IRB$W_IOS2       0000000E            RAB$M_FDL      = 00000040            

IRB$K_BLN_IDX    0000006C            IRB$W_NRP_OFF    00000030            RAB$M_HSH      = 00000080            

IRB$K_BLN_REL    00000048            IRB$W_OWN_ID     0000003C            RAB$M_KGE      = 00200000            

IRB$K_BLN_SEQ    0000004C            IRB$W_OWN_ISI    0000003E            RAB$M_KGT      = 00400000            

IRB$L_ARGLST     00000018            IRB$W_ROVHDSZ    00000044            RAB$M_LIM      = 00004000            

IRB$L_ASBADDR    00000014            IRB$W_RP_OFF     00000038            RAB$M_LOA      = 00002000            

IRB$L_BKPBITS    00000004            IRB$W_RTOTLSZ    00000046            RAB$M_LOC      = 00010000            

IRB$L_BWB        0000000C            IRB$W_SAVE_POS   00000052            RAB$M_MAS      = 00000020            

IRB$L_CURBDB     00000020            L$RMS10          00000000 R     04   RAB$M_NLK      = 00100000            

IRB$L_CURVBN     00000030            L$RMS11          00000007 R     04   RAB$M_NXR      = 00800000            

IRB$L_IFAB_LNK   00000000            L$RMS12          0000000E R     04   RAB$M_PMT      = 40000000            

IRB$L_IOS        0000000C            L$RMS13          00000015 R     04   RAB$M_PPF_IND  = 00004000            

IRB$L_IOS4       00000010            L$RMS16          0000001D R     04   RAB$M_PPF_RAT  = 00003FC0            

IRB$L_IRAB_LNK   0000001C            L$RMS17          00000023 R     04   RAB$M_PTA      = 20000000            

IRB$L_KEYBUF     00000048            L$RMS18          00000029 R     04   RAB$M_RAH      = 00000200            

IRB$L_LAST_RAB   00000024            L$RMS19          0000002F R     04   RAB$M_RLK      = 00080000            

IRB$L_LOCK_BDB   0000005C            L$RMS1GET4       00000000 R     05   RAB$M_RNE      = 01000000            

IRB$L_NRP        0000002C            L$RMS1GET5       00000007 R     05   RAB$M_RNF      = 08000000            

IRB$L_NRP_OFF    00000030            PIO$GL_FMLH      ********   X   02   RAB$M_TMO      = 02000000            

IRB$L_NRP_VBN    0000002C            PPF_EOF          000000E1 R     02   RAB$M_TPT      = 00000002            

IRB$L_NXTBDB     00000028            PPF_SKIP         000000D6 R     02   RAB$M_UIF      = 00000010            

IRB$L_OWNER_ID   0000003C            RAB$B_BID        00000000            RAB$M_ULK      = 00040000            

IRB$L_RFA_VBN    00000054            RAB$B_BLN        00000001            RAB$M_WAT      = 00020000            

IRB$L_RLB_ADDR   00000044            RAB$B_KRF        00000035            RAB$M_WBH      = 00000400            

IRB$L_RP         00000034            RAB$B_KSZ        00000034            RAB$S_PPF_RAT  = 00000008            

IRB$L_RP_OFF     00000038            RAB$B_MBC        00000037            RAB$V_ASY      = 00000000            

IRB$L_RP_VBN     00000034            RAB$B_MBF        00000036            RAB$V_BIO      = 0000000B            

IRB$L_RRV_VBN    0000004C            RAB$B_PSZ        00000034            RAB$V_CCO      = 0000001F            

IRB$L_TEMP0      00000044            RAB$B_RAC        0000001E            RAB$V_CVT      = 0000001A            

IRB$L_TEMP1      00000048            RAB$B_ROP1       00000005            RAB$V_EOF      = 00000008            

IRB$V_ASYNC    = 00000023            RAB$B_ROP2       00000006            RAB$V_FDL      = 00000006            

IRB$V_ASYNCWAIT= 00000024            RAB$B_ROP3       00000007            RAB$V_HSH      = 00000007            

IRB$V_BIO_LAST = 00000027            RAB$B_TMO        0000001F            RAB$V_KGE      = 00000015            

IRB$V_BRO_SW   = 00000028            RAB$C_BID      = 00000001            RAB$V_KGT      = 00000016            

IRB$V_BUSY     = 00000020            RAB$C_BLN        00000044            RAB$V_LIM      = 0000000E            

RM1GET          SEQUENTIAL SPECIFIC GET                          21-AUG-1978 21:39:29   VAX-11 MACRO X0.3-11               Page  17

SYMBOL TABLE                                                                                                                     (1)



RAB$V_LOA      = 0000000D            RMS$_BUG_XX8   = 0001847C            RMS$_IRC       = 0001857C            

RAB$V_LOC      = 00000010            RMS$_BUG_XX9   = 00018484            RMS$_ISI       = 00018584            

RAB$V_MAS      = 00000005            RMS$_CAA       = 0001848C            RMS$_KBF       = 0001858C            

RAB$V_NLK      = 00000014            RMS$_CCF       = 0001C0DC            RMS$_KEY       = 00018594            

RAB$V_NXR      = 00000017            RMS$_CCR       = 00018494            RMS$_KFF       = 00018031            

RAB$V_PMT      = 0000001E            RMS$_CDA       = 0001C0E4            RMS$_KRF       = 0001859C            

RAB$V_PPF_IND  = 0000000E            RMS$_CHG       = 0001849C            RMS$_KSZ       = 000185A4            

RAB$V_PPF_RAT  = 00000006            RMS$_CHK       = 000184A4            RMS$_LAN       = 000185AC            

RAB$V_PTA      = 0000001D            RMS$_CHN       = 0001C0EC            RMS$_LBL       = 000185B4            

RAB$V_RAH      = 00000009            RMS$_COD       = 000184AC            RMS$_LNE       = 000185BC            

RAB$V_RLK      = 00000013            RMS$_CONTROLC  = 00010651            RMS$_LOC       = 000185C4            

RAB$V_RNE      = 00000018            RMS$_CONTROLO  = 00010609            RMS$_MBC       = 00018734            

RAB$V_RNF      = 0000001B            RMS$_CONTROLY  = 00010611            RMS$_MKD       = 0001C032            

RAB$V_TMO      = 00000019            RMS$_CRE       = 0001C00A            RMS$_MRN       = 000185CC            

RAB$V_TPT      = 00000001            RMS$_CREATED   = 00010619            RMS$_MRS       = 000185D4            

RAB$V_UIF      = 00000004            RMS$_CUR       = 000184B4            RMS$_NAM       = 000185DC            

RAB$V_ULK      = 00000012            RMS$_DAC       = 0001C012            RMS$_NEF       = 000185E4            

RAB$V_WAT      = 00000011            RMS$_DAN       = 000184BC            RMS$_NET       = 0001874C            

RAB$V_WBH      = 0000000A            RMS$_DEL       = 00018262            RMS$_NID       = 000185EC            

RAB$W_ISI        00000002            RMS$_DEV       = 000184C4            RMS$_NMF       = 000182CA            

RAB$W_RFA        00000010            RMS$_DIR       = 000184CC            RMS$_NOD       = 000185F4            

RAB$W_RFA4       00000014            RMS$_DME       = 000184D4            RMS$_NORMAL    = 00010001            

RAB$W_RSZ        00000022            RMS$_DNA       = 000184DC            RMS$_NPK       = 000185FC            

RAB$W_USZ        00000020            RMS$_DNF       = 0001C04A            RMS$_OK_ALK    = 00018039            

RESET_NRP        000000B1 R     02   RMS$_DNR       = 00018272            RMS$_OK_DEL    = 00018041            

RFAOFF           0000005E R     02   RMS$_DPE       = 0001C03A            RMS$_OK_DUP    = 00018011            

RM$EXRMS         ********   X   02   RMS$_DTP       = 000184E4            RMS$_OK_IDX    = 00018019            

RM$FIND1         00000009 RG    02   RMS$_DUP       = 000184EC            RMS$_OK_LIM    = 00018051            

RM$GET1          00000000 RG    02   RMS$_DVI       = 000184F4            RMS$_OK_RLK    = 00018021            

RM$GETRANDOM     ********   X   02   RMS$_ENT       = 0001C01A            RMS$_OK_RNF    = 00018049            

RM$GET_BLK_DEV   ********   X   02   RMS$_ENV       = 00018724            RMS$_OK_RRV    = 00018029            

RM$GET_UNIT_REC  ********   X   02   RMS$_EOF       = 0001827A            RMS$_ORD       = 00018604            

RM$SEQKEY        00000000 RG    06   RMS$_ESA       = 000184FC            RMS$_ORG       = 0001860C            

RMS$V_STVSTATUS= 0000000E            RMS$_ESL       = 00018714            RMS$_PBF       = 00018614            

RMS$_ABO       = 000183EC            RMS$_ESS       = 00018504            RMS$_PENDING   = 00018009            

RMS$_ACC       = 0001C002            RMS$_EXP       = 000182C2            RMS$_PLG       = 0001861C            

RMS$_ACT       = 0001825A            RMS$_EXT       = 0001C022            RMS$_PLV       = 0001872C            

RMS$_AID       = 000183F4            RMS$_FAB       = 0001850C            RMS$_POS       = 00018624            

RMS$_ALN       = 000183FC            RMS$_FAC       = 00018514            RMS$_PRM       = 0001862C            

RMS$_ALQ       = 00018404            RMS$_FEX       = 00018282            RMS$_PRV       = 0001829A            

RMS$_ANI       = 0001840C            RMS$_FLG       = 0001851C            RMS$_QUO       = 00018634            

RMS$_AOP       = 00018414            RMS$_FLK       = 0001828A            RMS$_RAB       = 0001863C            

RMS$_ATR       = 0001C0CC            RMS$_FNA       = 00018524            RMS$_RAC       = 00018644            

RMS$_ATW       = 0001C0D4            RMS$_FND       = 0001C02A            RMS$_RAT       = 0001864C            

RMS$_BKS       = 0001841C            RMS$_FNF       = 00018292            RMS$_RBF       = 00018654            

RMS$_BKZ       = 00018424            RMS$_FNM       = 0001852C            RMS$_RER       = 0001C0F4            

RMS$_BLN       = 0001842C            RMS$_FOP       = 0001853C            RMS$_REX       = 000182A2            

RMS$_BOF       = 00018198            RMS$_FSZ       = 00018534            RMS$_RFA       = 0001865C            

RMS$_BUG       = 00018434            RMS$_FUL       = 00018544            RMS$_RFM       = 00018664            

RMS$_BUG_DAP   = 00018444            RMS$_IAL       = 0001854C            RMS$_RHB       = 0001866C            

RMS$_BUG_DDI   = 0001843C            RMS$_IAN       = 00018554            RMS$_RLF       = 00018674            

RMS$_BUG_XX2   = 0001844C            RMS$_IBF       = 00018754            RMS$_RLK       = 000182AA            

RMS$_BUG_XX3   = 00018454            RMS$_IDX       = 0001855C            RMS$_RMV       = 0001C0FC            

RMS$_BUG_XX4   = 0001845C            RMS$_IFA       = 0001C124            RMS$_RNF       = 000182B2            

RMS$_BUG_XX5   = 00018464            RMS$_IFI       = 00018564            RMS$_RNL       = 000181A0            

RMS$_BUG_XX6   = 0001846C            RMS$_IMX       = 0001856C            RMS$_ROP       = 0001867C            

RMS$_BUG_XX7   = 00018474            RMS$_IOP       = 00018574            RMS$_RPL       = 0001C104            

RM1GET          SEQUENTIAL SPECIFIC GET                          21-AUG-1978 21:39:29   VAX-11 MACRO X0.3-11               Page  18

SYMBOL TABLE                                                                                                                     (1)



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            

RMS$_TEMP1     = 0001826A            

RMS$_TEMP2     = 0001868C            

RMS$_TMO       = 000181B0            

RMS$_TRE       = 000186DC            

RMS$_TYP       = 000186E4            

RMS$_UBF       = 000186EC            

RMS$_USZ       = 000186F4            

RMS$_VER       = 000186FC            

RMS$_VOL       = 00018704            

RMS$_WBE       = 0001C12C            

RMS$_WER       = 0001C114            

RMS$_WLD       = 00018744            

RMS$_WLK       = 000182BA            

RMS$_WPL       = 0001C11C            

RMS$_WSF       = 0001871C            

RMS$_XAB       = 0001870C            

ROP            = 00000020            

SUCRET           0000003F R     06   

TPT$L_FIND1      ********   X   02   

TPT$L_GET1       ********   X   02   

TSTRFA           00000059 R     02   





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  

$RMS1            000000E7      02     NOPIC   USR   CON   REL   GBL NOSHR   EXE   RD  NOWRT QUAD  

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

L$RMS1           00000044      04     NOPIC   USR   CON   REL   GBL NOSHR   EXE   RD  NOWRT BYTE  

L$RMS1GET        0000001C      05     NOPIC   USR   CON   REL   GBL NOSHR   EXE   RD  NOWRT BYTE  

$RMS1KEY         00000066      06     NOPIC   USR   CON   REL   GBL NOSHR   EXE   RD  NOWRT BYTE  





THERE WERE NO ERRORS OR WARNINGS.

7816. BYTES LEFT IN FREE MEMORY POOL.

2096. BYTES OF RECLAIMED MEMORY.

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

RM1GET          SEQUENTIAL SPECIFIC GET                          21-AUG-1978 21:39:29   VAX-11 MACRO X0.3-11               Page  19

PROGRAM SECTION SYNOPSIS                                                                                                         (1)



32 MLB DIR RDS - 1103 GETS TO DEFINE 28 MACROS. 89 INTER. FILE WRITES. 

