RM1UPDATE       SEQUENTIAL SPECIFIC UPDATE                       21-AUG-1978 21:49:29   VAX-11 MACRO X0.3-11               Page   0

TABLE OF CONTENTS   



   (1)      41  DECLARATIONS

   (1)      67  RM$UPDATE1 - HIGH LEVEL SEQUENTIAL $UPDATE

RM1UPDATE       SEQUENTIAL SPECIFIC UPDATE                       21-AUG-1978 21:49:29   VAX-11 MACRO X0.3-11               Page   1

009                                                                                                                              (1)



                                     0000     1 	$BEGIN	RM1UPDATE,009,$RMS1,<SEQUENTIAL SPECIFIC UPDATE>

                                     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 SEQUENTIAL FILE ORGANIZATION

                                     0000    26 ;		SPECIFIC PROCESSING FOR THE $UPDATE FUNCTION.

                                     0000    27 ;

                                     0000    28 ;

                                     0000    29 ; ENVIRONMENT:

                                     0000    30 ;		STAR PROCESSOR RUNNING STARLET EXEC.

                                     0000    31 ;

                                     0000    32 ; AUTHOR: L F LAVERDURE,	 CREATION DATE: 14-JUL-77

                                     0000    33 ;

                                     0000    34 ; MODIFIED BY:

                                     0000    35 ;

                                     0000    36 ;	L F LAVERDURE,   9-MAY-78  11:20

                                     0000    37 ;	J A KRYCKA,	 1-AUG-78   8:25

                                     0000    38 ; 01	- 

                                     0000    39 ;--

RM1UPDATE       SEQUENTIAL SPECIFIC UPDATE                       21-AUG-1978 21:49:29   VAX-11 MACRO X0.3-11               Page   2

009             DECLARATIONS                                                                                                     (1)



                                     0000    41 	.SBTTL	DECLARATIONS

                                     0000    42 ;

                                     0000    43 ; INCLUDE FILES:

                                     0000    44 ;

                                     0000    45 

                                     0000    46 ;

                                     0000    47 ; MACROS:

                                     0000    48 ;

                                     0000    49 	$IFBDEF

                                     0000    50 	$DEVDEF

                                     0000    51 	$FABDEF

                                     0000    52 	$RABDEF

                                     0000    53 	$IRBDEF

                                     0000    54 	$BDBDEF

                                     0000    55 	$RMSDEF

                                     0000    56 	.LIST MEB

                                     0000    57 

                                     0000    58 ;

                                     0000    59 ; EQUATED SYMBOLS:

                                     0000    60 ;

                                     0000    61 

                                     0000    62 ;

                                     0000    63 ; OWN STORAGE:

                                     0000    64 ;

                                     0000    65 

RM1UPDATE       SEQUENTIAL SPECIFIC UPDATE                       21-AUG-1978 21:49:29   VAX-11 MACRO X0.3-11               Page   3

009             RM$UPDATE1 - HIGH LEVEL SEQUENTIAL $UPDATE                                                                       (1)



                                     0000    67 	.SBTTL RM$UPDATE1 - HIGH LEVEL SEQUENTIAL $UPDATE

                                     0000    68 ;++

                                     0000    69 ; FUNCTIONAL DESCRIPTION:

                                     0000    70 ;

                                     0000    71 ; THIS MODULE PERFORMS THE FOLLOWING FUNCTIONS:

                                     0000    72 ;

                                     0000    73 ;	1.  CALLS RM$PUTSETUP1 TO PERFORM VARIOUS SETUPS

                                     0000    74 ;	2.  VERIFIES THAT THE FILE IS ON DISK, THAT WE HAVE A

                                     0000    75 ;	    CURRENT RECORD, AND THAT THE SIZE IS NOT CHANGING

                                     0000    76 ;	3.  READS THE BLOCK CONTAINING THE RECORD IF NECESSARY

                                     0000    77 ;	4.  MOVES THE UPDATED RECORD TO THE BLOCK BUFFER SETTING

                                     0000    78 ;	    THE BUFFER DIRTY FLAG

                                     0000    79 ;

                                     0000    80 ; CALLING SEQUENCE:

                                     0000    81 ;

                                     0000    82 ; ENTERED VIA CASE BRANCH FROM RM$UPDATE AT RM$UPDATE1.

                                     0000    83 ;

                                     0000    84 ; INPUT PARAMETERS:

                                     0000    85 ;

                                     0000    86 ;	R11	IMPURE AREA ADDRESS

                                     0000    87 ;	R10	IFAB ADDR

                                     0000    88 ;	R9	IRAB ADDR

                                     0000    89 ;	R8	RAB ADDR

                                     0000    90 ;

                                     0000    91 ; IMPLICIT INPUTS:

                                     0000    92 ;

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

                                     0000    94 ;

                                     0000    95 ; OUTPUT PARAMETERS:

                                     0000    96 ;

                                     0000    97 ;	R7 THRU R1	DESTROYED

                                     0000    98 ;	R0		STATUS

                                     0000    99 ;

                                     0000   100 ; IMPLICIT OUTPUTS:

                                     0000   101 ;

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

                                     0000   103 ;	THE STATUS OF THE OPERATION (SEE FUNCTIONAL SPEC

                                     0000   104 ;	FOR DETAILS).

                                     0000   105 ;

                                     0000   106 ;	THE IRAB IS SIMILARLY UPDATED.

                                     0000   107 ;

                                     0000   108 ; COMPLETION CODES:

                                     0000   109 ;

                                     0000   110 ;	STANDARD RMS (SEE FUNCTIONAL SPEC).

                                     0000   111 ;

                                     0000   112 ; SIDE EFFECTS:

                                     0000   113 ;

                                     0000   114 ;	NONE

                                     0000   115 ;

                                     0000   116 ;--

RM1UPDATE       SEQUENTIAL SPECIFIC UPDATE                       21-AUG-1978 21:49:29   VAX-11 MACRO X0.3-11               Page   4

009             RM$UPDATE1 - HIGH LEVEL SEQUENTIAL $UPDATE                                                                       (1)



                                     0000   118 RM$UPDATE1::

                                     0000   119 	$TSTPT	UPDATE1

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

                          FFF7'  30  0006   120 	BSBW	RM$PUTSETUP1		; PERFORM VARIOUS UPDATE SETUPS

            1E            50     E9  0009   121 	BLBC	R0,UPDERR

            6A            3E     E0  000C   122 	BBS	#IFB$V_DAP,(R10),NTUPD	; BRANCH IF NETWORK FILE ACCESS

                          1D         000F       

                                     0010   123 ;

                                     0010   124 ;  MAKE VARIOUS LEGAL OPERATION CHECKS

                                     0010   125 ;

         42 A9            51     B1  0010   126 	CMPW	R1,IRB$W_CSIZ(R9)	; NEW SIZE = CURRENT REC SIZE?

                          0B     12  0014   127 	BNEQ	ERRRSZ			; BRANCH IF NOT

                          51     B5  0016   128 	TSTW	R1			; IS SIZE = 0?

                          0A     13  0018   129 	BEQL	ERRCUR			; BRANCH IF YES (IMPLIES THERE

                                     001A   130 					; IS NO CURRENT RECORD)

            6A            1C     E0  001A   131 	BBS	#DEV$V_RND,IFB$L_PRIM_DEV(R10),RM$UPDATE	; BRANCH IF DISK

                          38         001D       

RM1UPDATE       SEQUENTIAL SPECIFIC UPDATE                       21-AUG-1978 21:49:29   VAX-11 MACRO X0.3-11               Page   5

009             RM$UPDATE1 - HIGH LEVEL SEQUENTIAL $UPDATE                                                                       (1)



                                     001E   133 ;++

                                     001E   134 ;

                                     001E   135 ;  HANDLE ERRORS

                                     001E   136 ;

                                     001E   137 ;--

                                     001E   138 	$PSECT_BR	L$RMS1

                          FFDF'  31  001E       		BRW	L$RMS10

                                     0021       		.SAVE

                                 00000000       		.PSECT	L$RMS1,GBL,NOWRT

                                     0000       L$RMS10:

                                     0000   139 	RMSERR	IOP			; DEVICE NOT DISK

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

                          17     11  0005   140 	BRB	UPDERR1

                                     0007   141 	$PSECT_RESTORE

                                 00000021       		.RESTORE

                                     0021   142 ;

                                     0021   143 ERRRSZ:	$PSECT_BR	L$RMS1

                          FFE3'  31  0021       		BRW	L$RMS11

                                     0024       		.SAVE

                                 00000007       		.PSECT	L$RMS1,GBL,NOWRT

                                     0007       L$RMS11:

                       42 A9     B5  0007   144 	TSTW	IRB$W_CSIZ(R9)		; WAS THERE A CURRENT REC

                          07     13  000A   145 	BEQL	ERRCUR1			; BRANCH IF NO

                                     000C   146 	RMSERR	RSZ			; RECORD SIZE CHANGE ATTEMPTED

            50       86A4 8F     3C  000C       		MOVZWL	#<RMS$_RSZ&^XFFFF>,R0

                          0B     11  0011   147 	BRB	UPDERR1

                                     0013   148 	$PSECT_RESTORE

                                 00000024       		.RESTORE

                                     0024   149 ;

                                     0024   150 ERRCUR:	$PSECT_BR	L$RMS1

                          FFEC'  31  0024       		BRW	L$RMS12

                                     0027       		.SAVE

                                 00000013       		.PSECT	L$RMS1,GBL,NOWRT

                                     0013       L$RMS12:

                                     0013   151 ERRCUR1: RMSERR	CUR			; NO CURRENT RECORD

            50       84B4 8F     3C  0013       		MOVZWL	#<RMS$_CUR&^XFFFF>,R0

                          04     11  0018   152 	BRB	UPDERR1

                                     001A   153 	$PSECT_RESTORE

                                 00000027       		.RESTORE

                                     0027   154 ;

                                     0027   155 UPDERR_RSTNRP:

                                     0027   156 	$PSECT_BR	L$RMS1

                          FFF0'  31  0027       		BRW	L$RMS13

                                     002A       		.SAVE

                                 0000001A       		.PSECT	L$RMS1,GBL,NOWRT

                                     001A       L$RMS13:

         2C A9            8E     7D  001A   157 	MOVQ	(SP)+,IRB$L_NRP_VBN(R9)	; RESTORE NRP

                                     001E   158 	$PSECT_RESTORE			; AND FALL THRU TO UPDERR1

                                 0000002A       		.RESTORE

                                     002A   159 UPDERR:

                                     002A   160 	$PSECT_BR	L$RMS1

                          FFF1'  31  002A       		BRW	L$RMS14

                                     002D       		.SAVE

                                 0000001E       		.PSECT	L$RMS1,GBL,NOWRT

                                     001E       L$RMS14:

                       42 A9     B4  001E   161 UPDERR1: CLRW	IRB$W_CSIZ(R9)		; INDICATE NO CURRENT RECORD

                       10 A8     D4  0021   162 	CLRL	RAB$W_RFA(R8)		; ZERO RFA

RM1UPDATE       SEQUENTIAL SPECIFIC UPDATE                       21-AUG-1978 21:49:29   VAX-11 MACRO X0.3-11               Page   6

009             RM$UPDATE1 - HIGH LEVEL SEQUENTIAL $UPDATE                                                                       (1)



                       14 A8     B4  0024   163 	CLRW	RAB$W_RFA+4(R8)

                          FFD6'  31  0027   164 	BRW	RM$EXRMS

                                     002A   165 	$PSECT_RESTORE

                                 0000002D       		.RESTORE

                                     002D   166 ;++

                                     002D   167 ;

                                     002D   168 ;  PERFORM NETWORK UPDATE FUNCTION

                                     002D   169 ;

                                     002D   170 ;--

                                     002D   171 NTUPD:	$PSECT_BR	NF$NETWORK

                          FFD0'  31  002D       		BRW	NF$NETWORK5

                                     0030       		.SAVE

                                 00000000       		.PSECT	NF$NETWORK,GBL,NOWRT

                                     0000       NF$NETWORK5:

                          FFFD'  30  0000   172 	BSBW	NT$UPDATE1		; PERFORM UPDATE AT REMOTE NODE

            03            50     E9  0003   173 	BLBC	R0,10$			; BRANCH ON ERROR

                          009E'  31  0006   174 	BRW	UPDXIT			; JOIN MAINLINE

                          001E'  31  0009   175 10$:	BRW	UPDERR			; BRANCH AID

                                     000C   176 	$PSECT_RESTORE

                                 00000030       		.RESTORE

RM1UPDATE       SEQUENTIAL SPECIFIC UPDATE                       21-AUG-1978 21:49:29   VAX-11 MACRO X0.3-11               Page   7

009             RM$UPDATE1 - HIGH LEVEL SEQUENTIAL $UPDATE                                                                       (1)



                                     0030   178 ;

                                     0030   179 ;   SET CACHE READ FLAGS APPRORIATELY BASED UPON THE SITUATION

                                     0030   180 ;

                                     0030   181 ;  IN PARTICULAR, R3 IS SET TO 1 TO INDICATE NO READ REQUIRED

                                     0030   182 ;  (I.E., IF THE RECORD TO BE UPDATED STARTS ON A BLOCK BOUNDARY

                                     0030   183 ;   AND EITHER ENDS ON A BLOCK BOUNDARY OR THE END DOES NOT FIT

                                     0030   184 ;   IN THE BUFFER), R3 IS SET TO 2 TO INDICATE A SHORT READ

                                     0030   185 ;  (R2 SET TO # OF BLOCKS TO READ), ELSE R3 IS CLEARED INDICATING

                                     0030   186 ;  A FULL BUFFER IS TO BE READ

                                     0030   187 ;

                                     0030   188 NOFIT:					; ALL BLOCKS OF RECORD DON'T FIT IN BUFFER

                       38 A9     B5  0030   189 	TSTW	IRB$W_RP_OFF(R9)	; IS THE START OFFSET = 0?

                          08     13  0033   190 	BEQL	NOREAD			; BRANCH IF YES (NO READ REQUIRED)

                                     0035   191 READ_FIRST:

                          52     B4  0035   192 	CLRW	R2			; ONLY THE 1ST BLK NEEDS TO BE READ

                          3F     11  0037   193 	BRB	GETBLK

                                     0039   194 ;

                                     0039   195 ;  CHECK FOR ENDING OFFSET = 0 AND IF SO OMIT ENTIRE READ

                                     0039   196 ;

                          50     96  0039   197 CHKEND:	INCB	R0			; IS END OFFSET 0?

                          3B     12  003B   198 	BNEQ	GETBLK			; BRANCH IF NOT (MUST READ)

            03         3C AA     91  003D   199 NOREAD:	CMPB	IFB$B_RFMORG(R10),#FAB$C_VFC	; RFM = VFC?

                          35     13  0041   200 	BEQL	GETBLK			; BRANCH IF YES - CAN'T OPTIMIZE

                                     0043   201 ;

                                     0043   202 ;  ENTRY POINT FOR PUT PAST CURRENT EOF BLOCK

                                     0043   203 ;

                                     0043   204 NOREAD1:

            53            01     D0  0043   205 	MOVL	#1,R3			; FLAG READ NOT NEEDED

                          30     11  0046   206 	BRB	GETBLK

                                     0048   207 ;

                                     0048   208 ;

                                     0048   209 ;  ENTRY POINT FROM PUT RANDOM

                                     0048   210 ;

                                     0048   211 ;  CHECK FOR PAST EOF BLOCK IMPLYING NO READ REQUIRED

                                     0048   212 ;

                                     0048   213 RM$UPDATE_ALT::

         44 AA         34 A9     D1  0048   214 	CMPL	IRB$L_RP_VBN(R9),IFB$L_EBK(R10)	; PAST EOF BLOCK?

                          07     1F  004D   215 	BLSSU	RM$UPDATE			; BRANCH IF NOT

                          F2     1A  004F   216 	BGTRU	NOREAD1				; BRANCH IF YES

                       48 AA     B5  0051   217 	TSTW	IFB$W_FFB(R10)			; ANY DATA IN BLOCK?

                          ED     13  0054   218 	BEQL	NOREAD1				; BRANCH IF NONE

RM1UPDATE       SEQUENTIAL SPECIFIC UPDATE                       21-AUG-1978 21:49:29   VAX-11 MACRO X0.3-11               Page   8

009             RM$UPDATE1 - HIGH LEVEL SEQUENTIAL $UPDATE                                                                       (1)



                                     0056   220 ;

                                     0056   221 ;  CURRENT REGISTER CONTENTS:

                                     0056   222 ;

                                     0056   223 ;	R11-R8	NORMAL RMS

                                     0056   224 ;	R6	RECORD DATA LENGTH IN BYTES

                                     0056   225 ;	R5	RECORD DATA ADDRESS

                                     0056   226 ;	R1	TOTAL RECORD SIZE INCLUDING OVERHEAD BYTES

                                     0056   227 ;

                                     0056   228 RM$UPDATE::

                                     0056   229 ;

                                     0056   230 ;  COMPUTE # OF BLOCKS TO BE READ IN IF NECESSARY

                                     0056   231 ;

            53            02     D0  0056   232 	MOVL	#2,R3			; SET FLAG FOR READ REQUIRED,

                                     0059   233 					;  EXPLICIT # OF BLOCKS

            51         38 A9     A1  0059   234 	ADDW3	IRB$W_RP_OFF(R9),R1,R0	; GET END OFFSET

                          50         005D       

                          50     B7  005E   235 	DECW	R0			; ROUND DOWN

            50            1F     9C  0060   236 	ROTL	#31,R0,R0		; GET END OFFSET/2 IN BYTE 0

                          50         0063       

            07            08     EF  0064   237 	EXTZV	#8,#7,R0,R2		; # BLKS LESS 1 TO R2

            52            50         0067       

         41 A9            52     91  0069   238 	CMPB	R2,IRB$B_MBC(R9)	; ALL BLOCKS FIT IN BUFFER?

                          C1     1A  006D   239 	BGTRU	NOFIT			; BRANCH IF NOT

                                     006F   240 ;

                                     006F   241 ;  ALL BLOCKS CONTAINING THE DESIRED RECORD FIT IN THE BUFFER

                                     006F   242 ;  CHECK TO SEE IF EITHER STARTING OR ENDING OFFSET IS ZERO ALLOWING

                                     006F   243 ;  FOR A SHORT OR NULL READ

                                     006F   244 ;

                       38 A9     B5  006F   245 	TSTW	IRB$W_RP_OFF(R9)	; START OFFSET = 0?

                          C5     13  0072   246 	BEQL	CHKEND			; BRANCH IF YES

                          50     96  0074   247 	INCB	R0			; END OFFSET = 0?

                          BD     13  0076   248 	BEQL	READ_FIRST		; BRANCH IF YES (READ BLK 1 ONLY)

                                     0078   249 ;

                                     0078   250 ;  BEGINNING AND ENDING BLOCKS ARE PARTIALLY FULL.

                                     0078   251 ;  READ BLOCKS IN BEFORE UPDATE.

                                     0078   252 ;

                                     0078   253 GETBLK:

                                     0078   254 ;

                                     0078   255 ;  SAVE CURRENT NRP AND SET NRP FROM RP

                                     0078   256 ;

                                     0078   257 	ASSUME	IRB$W_NRP_OFF EQ IRB$L_NRP_VBN+4

            7E         2C A9     7D  0078   258 	MOVQ	IRB$L_NRP_VBN(R9),-(SP)

         2C A9         34 A9     7D  007C   259 	MOVQ	IRB$L_RP_VBN(R9),IRB$L_NRP_VBN(R9)

                                     0081   260 ;

                                     0081   261 ;  LOCATE BUFFER, POSSIBLY READING IN THE CURRENT BLOCK(S) CONTAINING

                                     0081   262 ;  THE RECORD

                                     0081   263 ;

                          FF7C'  30  0081   264 	BSBW	RM$GETBLKNRP

            A0            50     E9  0084   265 	BLBC	R0,UPDERR_RSTNRP

RM1UPDATE       SEQUENTIAL SPECIFIC UPDATE                       21-AUG-1978 21:49:29   VAX-11 MACRO X0.3-11               Page   9

009             RM$UPDATE1 - HIGH LEVEL SEQUENTIAL $UPDATE                                                                       (1)



                                     0087   267 ;

                                     0087   268 ;  CURRRENT REGISTER CONTENTS:

                                     0087   269 ;

                                     0087   270 ;	R11-R8	STANDARD RMS

                                     0087   271 ;	R7	END BLOCK POINTER

                                     0087   272 ;	R6	RECORD DATA LENGTH IN BYTES

                                     0087   273 ;	R5	RECORD DATA ADDRESS IN BYTES

                                     0087   274 ;	R4	ADDRESS OF CURRENT BDB

                                     0087   275 ;	R1	ADDRESS OF CURRENT BLOCK IN BUFFER

                                     0087   276 ;

            51         30 A9     C0  0087   277 	ADDL2	IRB$L_NRP_OFF(R9),R1	; MAKE OFFSET INTO ADDR OF RECORD

            01         3C AA     91  008B   278 	CMPB	IFB$B_RFMORG(R10),#FAB$C_FIX	;FIXED LENGTH RECORD?

                          0A     13  008F   279 	BEQL	MOVREC			; BRANCH IF YES

                                     0091   280 ;

                                     0091   281 ;  RECORD IS EITHER VAR OR VFC

                                     0091   282 ;  WRITE OUT 2 BYTE BINARY SIZE FIELD

                                     0091   283 ;  (NOTE: IT IS ASSUMED WE ALWAYS HAVE ROOM FOR A SIZE FIELD IN A BLOCK,

                                     0091   284 ;   OTHERWISE WE WOULD BE POSITIONED TO THE NEXT BLOCK ALREADY)

                                     0091   285 ;

            81            56     B0  0091   286 	MOVW	R6,(R1)+		; STORE SIZE

                                     0094   287 

                                     0094   288 	ASSUME	<FAB$C_VFC&1> EQ 1

                                     0094   289 	ASSUME	<FAB$C_VAR&1> EQ 0

                                     0094   290 

            03         3C AA     E9  0094   291 	BLBC	IFB$B_RFMORG(R10),MOVREC	; BRANCH IF VAR RFM

                                     0098   292 ;

                                     0098   293 ;  VFC FORMAT. STORE RECORD HEADER;

                                     0098   294 ;

                                     0098   295 	$PSECT_CALL	$RMS1VFC

                          FF65'  30  0098       		BSBW	$RMS1VFC6

                                     009B       		.SAVE

                                 00000000       		.PSECT	$RMS1VFC,GBL,NOWRT

                                     0000       $RMS1VFC6:

            7E            55     7D  0000   296 	MOVQ	R5,-(SP)		; SAVE RECORD ADDR AND SIZE

            56         4B AA     9A  0003   297 	MOVZBL	IFB$B_FSZ(R10),R6	; GET HEADER LENGTH

         FE A1            56     A0  0007   298 	ADDW2	R6,-2(R1)		; INCREASE RECORD SIZE

            55         2C A8     D0  000B   299 	MOVL	RAB$L_RHB(R8),R5	; GET RECORD ADDRESS

                          03     12  000F   300 	BNEQ	10$			; BRANCH IF SPECIFIED

            55            51     D0  0011   301 	MOVL	R1,R5			; JUST COPY CURRENT HEADER

                                     0014   302 					; (I.E., LEAVES IT UNCHANGED)

                                     0014   303 10$:	IFNORD	R6,(R5),ERRRHB,IRB$B_MODE(R9)	;PROBE IT

            56         0A A9     0C  0014       		PROBER	IRB$B_MODE(R9),R6,(R5)

                          65         0018       

                          10     13  0019       		BEQL	ERRRHB

                          00C0'  30  001B   304 	BSBW	BLDREC			; MOVE VFC HEADER

            55            8E     7D  001E   305 	MOVQ	(SP)+,R5		; RESTORE USER BUFFER REGS

            0C            50     E9  0021   306 	BLBC	R0,UPDERR_BR		; GET OUT ON ERROR

                          FFD9'  30  0024   307 	BSBW	RM$PROBEREAD		; REPROBE USER BUFFER

            06            50     E9  0027   308 	BLBC	R0,UPDERR_BR

                                 05  002A   309 	RSB				; RETURN IN LINE TO PREVIOUS PSECT

                                     002B   310 ;

                                     002B   311 ;

                                     002B   312 ;  HANDLE ERRORS

                                     002B   313 ;

                                     002B   314 ERRRHB:	RMSERR	RHB			; BAD RECORD HEADER BUFFER

            50       866C 8F     3C  002B       		MOVZWL	#<RMS$_RHB&^XFFFF>,R0

                                     0030   315 UPDERR_BR:

RM1UPDATE       SEQUENTIAL SPECIFIC UPDATE                       21-AUG-1978 21:49:29   VAX-11 MACRO X0.3-11               Page  10

009             RM$UPDATE1 - HIGH LEVEL SEQUENTIAL $UPDATE                                                                       (1)



                          8E     D5  0030   316 	TSTL	(SP)+			; CLEAN STACK

                          FFF2'  31  0032   317 	BRW	UPDERR_RSTNRP		; EXIT UPDATE

                                     0035   318 	$PSECT_RESTORE

                                 0000009B       		.RESTORE

RM1UPDATE       SEQUENTIAL SPECIFIC UPDATE                       21-AUG-1978 21:49:29   VAX-11 MACRO X0.3-11               Page  11

009             RM$UPDATE1 - HIGH LEVEL SEQUENTIAL $UPDATE                                                                       (1)



                                     009B   320 ;++

                                     009B   321 ;

                                     009B   322 ;  NOW MOVE THE DATA RECORD

                                     009B   323 ;

                                     009B   324 ;--

                          41     10  009B   325 MOVREC:	BSBB	BLDREC				; MOVE REC TO BUFFER

            87            50     E9  009D   326 	BLBC	R0,UPDERR_RSTNRP		; GET OUT ON ERROR

                                     00A0   327 ;

                                     00A0   328 ;  OPERATION NOW COMPLETE.  RESTORE NRP DATA AND RETURN RFA.

                                     00A0   329 ;

         44 AA         2C A9     D1  00A0   330 	CMPL	IRB$L_NRP_VBN(R9),IFB$L_EBK(R10); NEW EOF?

                          0F     1E  00A5   331 	BGEQU	CHKEOF				; BRANCH IF MAYBE

         2C A9            8E     7D  00A7   332 UPDXIT:	MOVQ	(SP)+,IRB$L_NRP_VBN(R9)		; RESTORE NRP

         10 A8         34 A9     7D  00AB   333 	MOVQ	IRB$L_RP_VBN(R9),RAB$W_RFA(R8)

                       42 A9     B4  00B0   334 	CLRW	IRB$W_CSIZ(R9)			; INDICATE NO CURRENT REC.

                          FF4A'  31  00B3   335 	BRW	RM$EXSUC			; EXIT WITH SUCCESS

                                     00B6   336 

                                     00B6   337 ;++

                                     00B6   338 ;

                                     00B6   339 ;  CHECK TO SEE IF THIS WAS A RANDOM PUT PAST CURRENT EOF AND IF SO

                                     00B6   340 ;  RESET THE EOF POINTER TO CORRESPOND

                                     00B6   341 ;

                                     00B6   342 ;--

                          51     D6  00B6   343 CHKEOF:	INCL	R1				; ROUND UP OFFSET

            51       FE01 8F     AA  00B8   344 	BICW2	#^XFE01,R1			; GET OFFSET WITHIN BLOCK

                                     00BD   345 						; (NOTE: ASSUMES BUFF PAGE ALIGNED)

                          03     12  00BD   346 	BNEQ	10$				; BRANCH IF NOT END OF BLOCK

                       2C A9     D6  00BF   347 	INCL	IRB$L_NRP_VBN(R9)		; BUMP NRP

         44 AA         2C A9     D1  00C2   348 10$:	CMPL	IRB$L_NRP_VBN(R9),IFB$L_EBK(R10); PAST EOF?

                          06     1A  00C7   349 	BGTRU	20$				; BRANCH IF YES

         48 AA            51     B1  00C9   350 	CMPW	R1,IFB$W_FFB(R10)		; OFFSET PAST EOF OFFSET?

                          D8     1B  00CD   351 	BLEQU	UPDXIT				; BRANCH IF NOT

         44 AA         2C A9     D0  00CF   352 20$:	MOVL	IRB$L_NRP_VBN(R9),IFB$L_EBK(R10); RESET EOF

         48 AA            51     B0  00D4   353 	MOVW	R1,IFB$W_FFB(R10)

                                     00D8   354 	SSB	#IFB$V_RW_ATTR,(R10)		; FLAG ATTR. REWRITE NEEDED

            6A            34     E2  00D8       		BBSS	#IFB$V_RW_ATTR,(R10),30000$

                          00         00DB       

                                     00DC       30000$:

                          C9     11  00DC   355 	BRB	UPDXIT

RM1UPDATE       SEQUENTIAL SPECIFIC UPDATE                       21-AUG-1978 21:49:29   VAX-11 MACRO X0.3-11               Page  12

009             RM$UPDATE1 - HIGH LEVEL SEQUENTIAL $UPDATE                                                                       (3)



                                     00DE   357 

                                     00DE   358 

                                     00DE   359 ;++

                                     00DE   360 ; BUILD RECORD SUBROUTINE

                                     00DE   361 ;

                                     00DE   362 ; FUNCTIONAL DESCRIPTION:

                                     00DE   363 ;

                                     00DE   364 ; THIS SUBROUTINE MOVES A RECORD FROM THE USER RECORD BUFFER

                                     00DE   365 ; TO THE RMS I/O BUFFER, CROSSING BLOCK BOUNDARIES AS NEEDED.

                                     00DE   366 ;

                                     00DE   367 ; CALLING SEQUENCE:

                                     00DE   368 ;

                                     00DE   369 ;	BSBW	BLDREC

                                     00DE   370 ;

                                     00DE   371 ; INPUT PARAMETERS:

                                     00DE   372 ;

                                     00DE   373 ;	R11	IMPURE AREA ADDRESS

                                     00DE   374 ;	R10	IFAB ADDRESS

                                     00DE   375 ;	R9	IRAB ADDRESS

                                     00DE   376 ;	R8	RAB ADDRESS

                                     00DE   377 ;	R7	END OF BLOCK ADDRESS + 1

                                     00DE   378 ;	R6	# OF BYTES IN RECORD

                                     00DE   379 ;	R5	ADDRESS OF RECORD (SOURCE)

                                     00DE   380 ;	R1	ADDRESS IN RMS I/O BUFFER (DESTINATION)

                                     00DE   381 ;

                                     00DE   382 ; IMPLICIT INPUTS:

                                     00DE   383 ;

                                     00DE   384 ;	THE CONTENTS OF THE VARIOUS STRUCTURES,

                                     00DE   385 ;	IN PARTICULAR, IRB$L_CURBDB.

                                     00DE   386 ;

                                     00DE   387 ; OUTPUT PARAMETERS:

                                     00DE   388 ;

                                     00DE   389 ;	R1	ADDRESS OF BYTE FOLLOWING THE MOVED RECORD

                                     00DE   390 ;		IN RMS I/O BUFFER

                                     00DE   391 ;	R0	STATUS CODE

                                     00DE   392 ;	R2-R6	DESTROYED

                                     00DE   393 ;

                                     00DE   394 ; IMPLICIT OUTPUTS:

                                     00DE   395 ;

                                     00DE   396 ;	BDB$B_FLGS - MARKED DIRTY

                                     00DE   397 ;	IRB$L_CURBDB - UPDATED IF BLOCK BOUNDARY CROSSED

                                     00DE   398 ;

                                     00DE   399 ;	IRB$L_NRP_VBN - UPDATED IF BLOCK BOUNDARY CROSSED

                                     00DE   400 ;	IRB$W_NRP_OFF - UPDATED IF BLOCK BOUNDARY CROSSED

                                     00DE   401 ;

                                     00DE   402 ; COMPLETION CODES:

                                     00DE   403 ;

                                     00DE   404 ;	STANDARD RMS.

                                     00DE   405 ;

                                     00DE   406 ; SIDE EFFECTS:

                                     00DE   407 ;

                                     00DE   408 ;	IF I/O STALL OCCURS WILL HAVE CHANGED TO

                                     00DE   409 ;	RUNNING AT AST LEVEL; REPROBING ANY NON-RAB

                                     00DE   410 ;	USER ADDRESS WILL BE REQUIRED.

                                     00DE   411 ;--

RM1UPDATE       SEQUENTIAL SPECIFIC UPDATE                       21-AUG-1978 21:49:29   VAX-11 MACRO X0.3-11               Page  13

009             RM$UPDATE1 - HIGH LEVEL SEQUENTIAL $UPDATE                                                                       (3)



                                     00DE   413 BLDREC:	

            57            51     C3  00DE   414 	SUBL3	R1,R7,R0		; GET # BYTES LEFT IN BUFFER

                          50         00E1       

            56            50     D1  00E2   415 	CMPL	R0,R6			; < RECORD SIZE?

                          03     1B  00E5   416 	BLEQU	20$			; BRANCH IF SO

            50            56     D0  00E7   417 	MOVL	R6,R0			; NO - JUST USE BUFFER SIZE

            56            50     C2  00EA   418 20$:	SUBL2	R0,R6			; ADJUST REMAINING COUNT

            65            50     28  00ED   419 	MOVC3	R0,(R5),(R1)		; MOVE (PARTIAL) RECORD TO BUFFER

                          61         00F0       

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

         0A A4            03     88  00F5   421 	BISB2	#BDB$M_VAL!BDB$M_DRT,BDB$B_FLGS(R4)	; SAY VALID & DIRTY

                          56     D5  00F9   422 	TSTL	R6			; DONE?

                          15     13  00FB   423 	BEQL	40$			; BRANCH IF YES

            53            51     D1  00FD   424 	CMPL	R1,R3			; SOURCE = DESTINATION?

                          17     13  0100   425 	BEQL	60$			; BRANCH IF YES

                          51     DD  0102   426 	PUSHL	R1			; SAVE SOURCE ADDR

                          19     10  0104   427 	BSBB	CHNGBF			; MOVE TO NEXT BUFFER

                          20     BA  0106   428 	POPR	#^M<R5>			; RESTORE SOURCE ADDR

            0D            50     E9  0108   429 	BLBC	R0,50$			; GET OUT ON ERROR

                          FEF2'  30  010B   430 	BSBW	RM$PROBEREAD		; REPROBE USER BUFFER

            CD            50     E8  010E   431 	BLBS	R0,BLDREC		; AND GO AGAIN IF NO ERROR

                                 05  0111   432 	RSB

                                     0112   433 ;

                                     0112   434 ; MOVE TO BUFFER IS COMPLETE

                                     0112   435 ;

            51            53     D0  0112   436 40$:	MOVL	R3,R1			; NEXT BYTE POINTER TO CORRECT REG.

                                     0115   437 	RMSSUC

            50            01     D0  0115       		MOVL	#1,R0

                                 05  0118   438 50$:	RSB

                                     0119   439 ;

                                     0119   440 ;  SINCE THE SOURCE AND DESTINATION POINTERS ARE EQUAL, THIS IS A

                                     0119   441 ;  COPY OF THE EXISTING VFC HEADER.  READ THE NEXT BUFFER AND SIMPLY

                                     0119   442 ;  BUMP THE POINTER IN THE BLOCK AS THE VFC HEADER IS DEFINITELY NOT

                                     0119   443 ;  LONGER THAN THE NEW BUFFER.

                                     0119   444 ;

                          04     10  0119   445 60$:	BSBB	CHNGBF			; READ IN NEXT BLOCK BUFFER

            51            56     C0  011B   446 	ADDL2	R6,R1			; BUMP BUFFER ADDR PAST REST

                                     011E   447 					; OF HEADER

                                 05  011E   448 	RSB

RM1UPDATE       SEQUENTIAL SPECIFIC UPDATE                       21-AUG-1978 21:49:29   VAX-11 MACRO X0.3-11               Page  14

009             RM$UPDATE1 - HIGH LEVEL SEQUENTIAL $UPDATE                                                                       (3)



                                     011F   450 ;++

                                     011F   451 ; CHANGE BUFFER/BLOCK SUBROUTINE

                                     011F   452 ;

                                     011F   453 ; CALLS RM$NXTBLK1 SUBROUTINE WITH R3 SET TO READ IN THE NEXT BLOCK

                                     011F   454 ; UNLESS THE BLOCK WILL BE COMPLETELY FILLED BY THE RECORD, IN WHICH

                                     011F   455 ; CASE NO READ IS REQUIRED.

                                     011F   456 ; ALL OTHER INPUTS AND OUTPUTS SAME AS FOR RM$NXTBLK1

                                     011F   457 ;

                                     011F   458 ;--

            53            01     D0  011F   459 CHNGBF:	MOVL	#1,R3			; FLAG NO READ REQUIRED

         38 AA            56     B1  0122   460 	CMPW	R6,IFB$W_DEVBUFSIZ(R10)	; WILL BLOCK BE FILLED?

                          15     1E  0126   461 	BGEQU	CHNGBF1			; BRANCH IF YES

         2C A9            01     C1  0128   462 	ADDL3	#1,IRB$L_NRP_VBN(R9),R0	; COMPUTE NEXT VBN

                          50         012C       

         44 AA            50     D1  012D   463 	CMPL	R0,IFB$L_EBK(R10)	; PAST EOF?

                          08     1F  0131   464 	BLSSU	10$			; BRANCH IF NOT (MUST READ)

                          08     1A  0133   465 	BGTRU	CHNGBF1			; BRANCH IF YES (NO READ)

                                     0135   466 ;

                                     0135   467 ;  IN THE EOF BLOCK  -  CHECK FOR READ REQUIRED

                                     0135   468 ;

         48 AA            56     B1  0135   469 	CMPW	R6,IFB$W_FFB(R10)	; ANY BYTES THAT WON'T BE OVERWRITTEN?

                          02     1E  0139   470 	BGEQU	CHNGBF1			; BRANCH IF NONE (NO READ)

                          53     D4  013B   471 10$:	CLRL	R3			; FLAG READ REQUIRED

                          FEC0'  31  013D   472 CHNGBF1: BRW	RM$NXTBLK1		; GO READ NEXT BLOCK

                                     0140   473 

                                     0140   474 

                                     0140   475 	.END

RM1UPDATE       SEQUENTIAL SPECIFIC UPDATE                       21-AUG-1978 21:49:29   VAX-11 MACRO X0.3-11               Page  15

SYMBOL TABLE                                                                                                                     (3)



$$.PSECT_EP    = 00000007            DEV$M_FOR      = 01000000            FAB$B_RTV        0000001C            

$$RMSTEST      = 0000001A            DEV$M_GEN      = 00020000            FAB$B_SHR        00000017            

$$RMS_PBUGCHK  = 00000010            DEV$M_IDV      = 04000000            FAB$C_BID      = 00000003            

$$RMS_TBUGCHK  = 00000008            DEV$M_MBX      = 00100000            FAB$C_BLN        00000050            

$$RMS_UMODE    = 00000004            DEV$M_MNT      = 00080000            FAB$C_FIX      = 00000001            

$RMS1VFC6        00000000 R     06   DEV$M_NET      = 00002000            FAB$C_HSH      = 00000030            

BDB$B_BID        00000008            DEV$M_ODV      = 08000000            FAB$C_IDX      = 00000020            

BDB$B_BLN        00000009            DEV$M_RCK      = 40000000            FAB$C_MAXRFM   = 00000003            

BDB$B_FLGS       0000000A            DEV$M_REC      = 00000001            FAB$C_REL      = 00000010            

BDB$B_POST_CCTL  00000023            DEV$M_RND      = 10000000            FAB$C_RFM_DFLT = 00000002            

BDB$B_PRE_CCTL   00000022            DEV$M_RTM      = 20000000            FAB$C_SEQ      = 00000000            

BDB$B_REL_VBN    00000020            DEV$M_SDI      = 00000010            FAB$C_UDF      = 00000000            

BDB$B_USECNT     0000000B            DEV$M_SHR      = 00010000            FAB$C_VAR      = 00000002            

BDB$B_VAL_VBNS   00000021            DEV$M_SPL      = 00000040            FAB$C_VFC      = 00000003            

BDB$C_BID      = 0000000C            DEV$M_SQD      = 00000020            FAB$K_BLN        00000050            

BDB$C_BLN        00000028            DEV$M_SWL      = 02000000            FAB$L_ALQ        00000010            

BDB$K_BLN        00000028            DEV$M_TRM      = 00000004            FAB$L_CTX        00000018            

BDB$L_ADDR       00000014            DEV$M_WCK      = 80000000            FAB$L_DEV        00000040            

BDB$L_BLINK      00000004            DEV$V_ALL      = 00000017            FAB$L_DNA        00000030            

BDB$L_CURBUFADR  00000024            DEV$V_AVL      = 00000012            FAB$L_FNA        0000002C            

BDB$L_FLINK      00000000            DEV$V_CCL      = 00000001            FAB$L_FOP        00000004            

BDB$L_IOSB       00000020            DEV$V_DIR      = 00000003            FAB$L_JNL        00000020            

BDB$L_OWN        0000000C            DEV$V_DMT      = 00000015            FAB$L_MRN        00000038            

BDB$L_VBN        00000018            DEV$V_ELG      = 00000016            FAB$L_NAM        00000028            

BDB$L_WAIT       0000001C            DEV$V_FOD      = 0000000E            FAB$L_SDC        00000044            

BDB$L_WK1        00000020            DEV$V_FOR      = 00000018            FAB$L_STS        00000008            

BDB$M_AST_DCL  = 00000040            DEV$V_GEN      = 00000011            FAB$L_STV        0000000C            

BDB$M_DRT      = 00000002            DEV$V_IDV      = 0000001A            FAB$L_XAB        00000024            

BDB$M_IOP      = 00000004            DEV$V_MBX      = 00000014            FAB$M_BIO      = 00000020            

BDB$M_LKDINWS  = 00000080            DEV$V_MNT      = 00000013            FAB$M_BLK      = 00000008            

BDB$M_NOLOCATE = 00000010            DEV$V_NET      = 0000000D            FAB$M_BRO      = 00000040            

BDB$M_PRM      = 00000008            DEV$V_ODV      = 0000001B            FAB$M_CBT      = 00200000            

BDB$M_VAL      = 00000001            DEV$V_RCK      = 0000001E            FAB$M_CIF      = 02000000            

BDB$M_WFO      = 00000020            DEV$V_REC      = 00000000            FAB$M_CR       = 00000002            

BDB$V_AST_DCL  = 00000006            DEV$V_RND      = 0000001C            FAB$M_CTG      = 00100000            

BDB$V_DRT      = 00000001            DEV$V_RTM      = 0000001D            FAB$M_DEL      = 00000004            

BDB$V_IOP      = 00000002            DEV$V_SDI      = 00000004            FAB$M_DFW      = 00000020            

BDB$V_LKDINWS  = 00000007            DEV$V_SHR      = 00000010            FAB$M_DLT      = 00008000            

BDB$V_NOLOCATE = 00000004            DEV$V_SPL      = 00000006            FAB$M_DMO      = 00001000            

BDB$V_PRM      = 00000003            DEV$V_SQD      = 00000005            FAB$M_ESC      = 08000000            

BDB$V_VAL      = 00000000            DEV$V_SWL      = 00000019            FAB$M_EXE      = 00000080            

BDB$V_WFO      = 00000005            DEV$V_TRM      = 00000002            FAB$M_FTN      = 00000001            

BDB$W_NUMB       00000010            DEV$V_WCK      = 0000001F            FAB$M_GET      = 00000002            

BDB$W_SIZE       00000012            ERRCUR           00000024 R     02   FAB$M_INP      = 00080000            

BIT...         = 0001C134            ERRCUR1          00000013 R     04   FAB$M_JNL      = 00400000            

BLDREC           000000DE R     02   ERRRHB           0000002B R     06   FAB$M_KFO      = 40000000            

CHKEND           00000039 R     02   ERRRSZ           00000021 R     02   FAB$M_MSE      = 00000010            

CHKEOF           000000B6 R     02   FAB$B_BID        00000000            FAB$M_MXV      = 00000002            

CHNGBF           0000011F R     02   FAB$B_BKS        0000003E            FAB$M_NAM      = 01000000            

CHNGBF1          0000013D R     02   FAB$B_BLN        00000001            FAB$M_NEF      = 00000400            

DEV$M_ALL      = 00800000            FAB$B_DNS        00000035            FAB$M_NFS      = 00010000            

DEV$M_AVL      = 00040000            FAB$B_FAC        00000016            FAB$M_NIL      = 00000020            

DEV$M_CCL      = 00000002            FAB$B_FNS        00000034            FAB$M_OFP      = 20000000            

DEV$M_DIR      = 00000008            FAB$B_FSZ        0000003F            FAB$M_POS      = 00000100            

DEV$M_DMT      = 00200000            FAB$B_ORG        0000001D            FAB$M_PPF      = 00040000            

DEV$M_ELG      = 00400000            FAB$B_RAT        0000001E            FAB$M_PPF_IND  = 00004000            

DEV$M_FOD      = 00004000            FAB$B_RFM        0000001F            FAB$M_PPF_RAT  = 00003FC0            

RM1UPDATE       SEQUENTIAL SPECIFIC UPDATE                       21-AUG-1978 21:49:29   VAX-11 MACRO X0.3-11               Page  16

SYMBOL TABLE                                                                                                                     (3)



FAB$M_PRN      = 00000004            FAB$V_RWC      = 0000000B            IFB$L_ARGLST     00000018            

FAB$M_PUT      = 00000001            FAB$V_RWO      = 00000007            IFB$L_ASBADDR    00000014            

FAB$M_RCK      = 00800000            FAB$V_SCF      = 0000000E            IFB$L_AS_DEV     00000054            

FAB$M_RWC      = 00000800            FAB$V_SHRDEL   = 00000002            IFB$L_BDB_BLNK   00000034            

FAB$M_RWO      = 00000080            FAB$V_SHRGET   = 00000001            IFB$L_BDB_FLNK   00000030            

FAB$M_SCF      = 00004000            FAB$V_SHRPUT   = 00000000            IFB$L_BKPBITS    00000004            

FAB$M_SHRDEL   = 00000004            FAB$V_SHRUPD   = 00000003            IFB$L_BWB        0000000C            

FAB$M_SHRGET   = 00000002            FAB$V_SPL      = 0000000D            IFB$L_DVBN       00000058            

FAB$M_SHRPUT   = 00000001            FAB$V_SQO      = 00000006            IFB$L_EBK        00000044            

FAB$M_SHRUPD   = 00000008            FAB$V_SUP      = 00000002            IFB$L_FRB_PTR    00000028            

FAB$M_SPL      = 00002000            FAB$V_TEF      = 0000001C            IFB$L_FWA_BDB    00000050            

FAB$M_SQO      = 00000040            FAB$V_TMD      = 00000004            IFB$L_HBK        00000040            

FAB$M_SUP      = 00000004            FAB$V_TMP      = 00000003            IFB$L_IDX_PTR    00000054            

FAB$M_TEF      = 10000000            FAB$V_TRN      = 00000004            IFB$L_IOS        0000000C            

FAB$M_TMD      = 00000010            FAB$V_UFM      = 0000001A            IFB$L_IOS4       00000010            

FAB$M_TMP      = 00000008            FAB$V_UFO      = 00000011            IFB$L_IRAB_LNK   0000001C            

FAB$M_TRN      = 00000010            FAB$V_UPD      = 00000003            IFB$L_LAST_FAB   00000024            

FAB$M_UFM      = 04000000            FAB$V_UPI      = 00000006            IFB$L_LOCK_BDB   00000050            

FAB$M_UFO      = 00020000            FAB$V_WCK      = 00000009            IFB$L_MRN        00000054            

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

FAB$M_UPI      = 00000040            FAB$W_DEQ        00000014            IFB$L_NWA_PTR    00000028            

FAB$M_WCK      = 00000200            FAB$W_IFI        00000002            IFB$L_PRIM_DEV   00000000            

FAB$S_ORG      = 00000004            FAB$W_MRS        00000036            IFB$L_RLB_LNK    0000002C            

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

FAB$V_BIO      = 00000005            GETBLK           00000078 R     02   IFB$M_BIO      = 00000020            

FAB$V_BLK      = 00000003            IFB$B_AMAX       00000059            IFB$M_BRO      = 00000040            

FAB$V_BRO      = 00000006            IFB$B_AVBN       00000058            IFB$M_DEL      = 00000004            

FAB$V_CBT      = 00000015            IFB$B_BID        00000008            IFB$M_EXE      = 00000080            

FAB$V_CIF      = 00000019            IFB$B_BKS        0000004A            IFB$M_GET      = 00000002            

FAB$V_CR       = 00000001            IFB$B_BLN        00000009            IFB$M_PUT      = 00000001            

FAB$V_CTG      = 00000014            IFB$B_EFN        0000000B            IFB$M_TRN      = 00000010            

FAB$V_DEL      = 00000002            IFB$B_EXTRABUF   0000005D            IFB$M_UPD      = 00000008            

FAB$V_DFW      = 00000005            IFB$B_FAC        00000022            IFB$S_ORG      = 00000004            

FAB$V_DLT      = 0000000F            IFB$B_FSZ        0000004B            IFB$S_RFM      = 00000004            

FAB$V_DMO      = 0000000C            IFB$B_KBUFSZ     0000005C            IFB$V_ACCESSED = 00000025            

FAB$V_ESC      = 0000001B            IFB$B_MODE       0000000A            IFB$V_ANSI_D   = 00000026            

FAB$V_EXE      = 00000007            IFB$B_NUM_KEYS   0000005A            IFB$V_ASYNC    = 00000023            

FAB$V_FTN      = 00000000            IFB$B_ORGCASE    00000023            IFB$V_ASYNCWAIT= 00000024            

FAB$V_GET      = 00000001            IFB$B_RAT        0000003D            IFB$V_BIO      = 00000005            

FAB$V_INP      = 00000013            IFB$B_RFMORG     0000003C            IFB$V_BRO      = 00000006            

FAB$V_JNL      = 00000016            IFB$B_UBUFSZ     0000005B            IFB$V_BUSY     = 00000020            

FAB$V_KFO      = 0000001E            IFB$C_BID      = 0000000B            IFB$V_CREATE   = 00000032            

FAB$V_MSE      = 00000004            IFB$C_BLN        00000060            IFB$V_DAP      = 0000003E            

FAB$V_MXV      = 00000001            IFB$C_BLN_IDX    00000060            IFB$V_DAP_OPEN = 0000003D            

FAB$V_NAM      = 00000018            IFB$C_BLN_REL    00000060            IFB$V_DEL      = 00000002            

FAB$V_NEF      = 0000000A            IFB$C_BLN_SEQ    0000005C            IFB$V_DFW      = 0000002C            

FAB$V_NFS      = 00000010            IFB$C_DIR      = 00000003            IFB$V_DLT      = 0000002B            

FAB$V_NIL      = 00000005            IFB$C_FHAEND     00000050            IFB$V_DMO      = 00000028            

FAB$V_OFP      = 0000001D            IFB$C_IDX      = 00000002            IFB$V_EOF      = 00000021            

FAB$V_ORG      = 00000004            IFB$C_MAXORG   = 00000002            IFB$V_EXE      = 00000007            

FAB$V_POS      = 00000008            IFB$C_REL      = 00000001            IFB$V_GET      = 00000001            

FAB$V_PPF      = 00000012            IFB$C_SEQ      = 00000000            IFB$V_MSE      = 00000031            

FAB$V_PPF_IND  = 0000000E            IFB$K_BLN        00000060            IFB$V_NORECLK  = 00000033            

FAB$V_PPF_RAT  = 00000006            IFB$K_BLN_IDX    00000060            IFB$V_NSP      = 0000003F            

FAB$V_PRN      = 00000002            IFB$K_BLN_REL    00000060            IFB$V_NWA      = 0000003C            

FAB$V_PUT      = 00000000            IFB$K_BLN_SEQ    0000005C            IFB$V_ORG      = 00000004            

FAB$V_RCK      = 00000017            IFB$K_FHAEND     00000050            IFB$V_PPF_IMAGE= 00000022            

RM1UPDATE       SEQUENTIAL SPECIFIC UPDATE                       21-AUG-1978 21:49:29   VAX-11 MACRO X0.3-11               Page  17

SYMBOL TABLE                                                                                                                     (3)



IFB$V_PPF_INPUT= 0000002E            IRB$L_CURVBN     00000030            L$RMS11          00000007 R     04   

IFB$V_PUT      = 00000000            IRB$L_IFAB_LNK   00000000            L$RMS12          00000013 R     04   

IFB$V_RFM      = 00000000            IRB$L_IOS        0000000C            L$RMS13          0000001A R     04   

IFB$V_RWC      = 00000027            IRB$L_IOS4       00000010            L$RMS14          0000001E R     04   

IFB$V_RW_ATTR  = 00000034            IRB$L_IRAB_LNK   0000001C            MOVREC           0000009B R     02   

IFB$V_SCF      = 0000002A            IRB$L_KEYBUF     00000048            NF$NETWORK5      00000000 R     05   

IFB$V_SPL      = 00000029            IRB$L_LAST_RAB   00000024            NOFIT            00000030 R     02   

IFB$V_SQO      = 0000002D            IRB$L_LOCK_BDB   0000005C            NOREAD           0000003D R     02   

IFB$V_TEF      = 00000036            IRB$L_NRP        0000002C            NOREAD1          00000043 R     02   

IFB$V_TMP      = 00000035            IRB$L_NRP_OFF    00000030            NT$UPDATE1       ********   X   05   

IFB$V_TRN      = 00000004            IRB$L_NRP_VBN    0000002C            NTUPD            0000002D R     02   

IFB$V_UPD      = 00000003            IRB$L_NXTBDB     00000028            PIO$GL_FMLH      ********   X   02   

IFB$V_WRTACC   = 00000030            IRB$L_OWNER_ID   0000003C            RAB$B_BID        00000000            

IFB$W_ASDEVBSIZ  0000005A            IRB$L_RFA_VBN    00000054            RAB$B_BLN        00000001            

IFB$W_BKS_BYTES  0000005C            IRB$L_RLB_ADDR   00000044            RAB$B_KRF        00000035            

IFB$W_BKS_RECS   0000005E            IRB$L_RP         00000034            RAB$B_KSZ        00000034            

IFB$W_CHNL       00000020            IRB$L_RP_OFF     00000038            RAB$B_MBC        00000037            

IFB$W_DEQ        0000004E            IRB$L_RP_VBN     00000034            RAB$B_MBF        00000036            

IFB$W_DEVBUFSIZ  00000038            IRB$L_RRV_VBN    0000004C            RAB$B_PSZ        00000034            

IFB$W_EBK0       00000044            IRB$L_TEMP0      00000044            RAB$B_RAC        0000001E            

IFB$W_EBK2       00000046            IRB$L_TEMP1      00000048            RAB$B_ROP1       00000005            

IFB$W_FFB        00000048            IRB$V_ASYNC    = 00000023            RAB$B_ROP2       00000006            

IFB$W_IOS2       0000000E            IRB$V_ASYNCWAIT= 00000024            RAB$B_ROP3       00000007            

IFB$W_LRL        0000003E            IRB$V_BIO_LAST = 00000027            RAB$B_TMO        0000001F            

IFB$W_MRS        0000004C            IRB$V_BRO_SW   = 00000028            RAB$C_BID      = 00000001            

IFB$W_RTDEQ      0000003A            IRB$V_BUSY     = 00000020            RAB$C_BLN        00000044            

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            

RM1UPDATE       SEQUENTIAL SPECIFIC UPDATE                       21-AUG-1978 21:49:29   VAX-11 MACRO X0.3-11               Page  18

SYMBOL TABLE                                                                                                                     (3)



RAB$M_NXR      = 00800000            RM$UPDATE        00000056 RG    02   RMS$_ENV       = 00018724            

RAB$M_PMT      = 40000000            RM$UPDATE1       00000000 RG    02   RMS$_EOF       = 0001827A            

RAB$M_PPF_IND  = 00004000            RM$UPDATE_ALT    00000048 RG    02   RMS$_ESA       = 000184FC            

RAB$M_PPF_RAT  = 00003FC0            RMS$V_STVSTATUS= 0000000E            RMS$_ESL       = 00018714            

RAB$M_PTA      = 20000000            RMS$_ABO       = 000183EC            RMS$_ESS       = 00018504            

RAB$M_RAH      = 00000200            RMS$_ACC       = 0001C002            RMS$_EXP       = 000182C2            

RAB$M_RLK      = 00080000            RMS$_ACT       = 0001825A            RMS$_EXT       = 0001C022            

RAB$M_RNE      = 01000000            RMS$_AID       = 000183F4            RMS$_FAB       = 0001850C            

RAB$M_RNF      = 08000000            RMS$_ALN       = 000183FC            RMS$_FAC       = 00018514            

RAB$M_TMO      = 02000000            RMS$_ALQ       = 00018404            RMS$_FEX       = 00018282            

RAB$M_TPT      = 00000002            RMS$_ANI       = 0001840C            RMS$_FLG       = 0001851C            

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

RAB$M_ULK      = 00040000            RMS$_ATR       = 0001C0CC            RMS$_FNA       = 00018524            

RAB$M_WAT      = 00020000            RMS$_ATW       = 0001C0D4            RMS$_FND       = 0001C02A            

RAB$M_WBH      = 00000400            RMS$_BKS       = 0001841C            RMS$_FNF       = 00018292            

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

RAB$V_ASY      = 00000000            RMS$_BLN       = 0001842C            RMS$_FOP       = 0001853C            

RAB$V_BIO      = 0000000B            RMS$_BOF       = 00018198            RMS$_FSZ       = 00018534            

RAB$V_CCO      = 0000001F            RMS$_BUG       = 00018434            RMS$_FUL       = 00018544            

RAB$V_CVT      = 0000001A            RMS$_BUG_DAP   = 00018444            RMS$_IAL       = 0001854C            

RAB$V_EOF      = 00000008            RMS$_BUG_DDI   = 0001843C            RMS$_IAN       = 00018554            

RAB$V_FDL      = 00000006            RMS$_BUG_XX2   = 0001844C            RMS$_IBF       = 00018754            

RAB$V_HSH      = 00000007            RMS$_BUG_XX3   = 00018454            RMS$_IDX       = 0001855C            

RAB$V_KGE      = 00000015            RMS$_BUG_XX4   = 0001845C            RMS$_IFA       = 0001C124            

RAB$V_KGT      = 00000016            RMS$_BUG_XX5   = 00018464            RMS$_IFI       = 00018564            

RAB$V_LIM      = 0000000E            RMS$_BUG_XX6   = 0001846C            RMS$_IMX       = 0001856C            

RAB$V_LOA      = 0000000D            RMS$_BUG_XX7   = 00018474            RMS$_IOP       = 00018574            

RAB$V_LOC      = 00000010            RMS$_BUG_XX8   = 0001847C            RMS$_IRC       = 0001857C            

RAB$V_MAS      = 00000005            RMS$_BUG_XX9   = 00018484            RMS$_ISI       = 00018584            

RAB$V_NLK      = 00000014            RMS$_CAA       = 0001848C            RMS$_KBF       = 0001858C            

RAB$V_NXR      = 00000017            RMS$_CCF       = 0001C0DC            RMS$_KEY       = 00018594            

RAB$V_PMT      = 0000001E            RMS$_CCR       = 00018494            RMS$_KFF       = 00018031            

RAB$V_PPF_IND  = 0000000E            RMS$_CDA       = 0001C0E4            RMS$_KRF       = 0001859C            

RAB$V_PPF_RAT  = 00000006            RMS$_CHG       = 0001849C            RMS$_KSZ       = 000185A4            

RAB$V_PTA      = 0000001D            RMS$_CHK       = 000184A4            RMS$_LAN       = 000185AC            

RAB$V_RAH      = 00000009            RMS$_CHN       = 0001C0EC            RMS$_LBL       = 000185B4            

RAB$V_RLK      = 00000013            RMS$_COD       = 000184AC            RMS$_LNE       = 000185BC            

RAB$V_RNE      = 00000018            RMS$_CONTROLC  = 00010651            RMS$_LOC       = 000185C4            

RAB$V_RNF      = 0000001B            RMS$_CONTROLO  = 00010609            RMS$_MBC       = 00018734            

RAB$V_TMO      = 00000019            RMS$_CONTROLY  = 00010611            RMS$_MKD       = 0001C032            

RAB$V_TPT      = 00000001            RMS$_CRE       = 0001C00A            RMS$_MRN       = 000185CC            

RAB$V_UIF      = 00000004            RMS$_CREATED   = 00010619            RMS$_MRS       = 000185D4            

RAB$V_ULK      = 00000012            RMS$_CUR       = 000184B4            RMS$_NAM       = 000185DC            

RAB$V_WAT      = 00000011            RMS$_DAC       = 0001C012            RMS$_NEF       = 000185E4            

RAB$V_WBH      = 0000000A            RMS$_DAN       = 000184BC            RMS$_NET       = 0001874C            

RAB$W_ISI        00000002            RMS$_DEL       = 00018262            RMS$_NID       = 000185EC            

RAB$W_RFA        00000010            RMS$_DEV       = 000184C4            RMS$_NMF       = 000182CA            

RAB$W_RFA4       00000014            RMS$_DIR       = 000184CC            RMS$_NOD       = 000185F4            

RAB$W_RSZ        00000022            RMS$_DME       = 000184D4            RMS$_NORMAL    = 00010001            

RAB$W_USZ        00000020            RMS$_DNA       = 000184DC            RMS$_NPK       = 000185FC            

READ_FIRST       00000035 R     02   RMS$_DNF       = 0001C04A            RMS$_OK_ALK    = 00018039            

RM$EXRMS         ********   X   04   RMS$_DNR       = 00018272            RMS$_OK_DEL    = 00018041            

RM$EXSUC         ********   X   02   RMS$_DPE       = 0001C03A            RMS$_OK_DUP    = 00018011            

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

RM$NXTBLK1       ********   X   02   RMS$_DUP       = 000184EC            RMS$_OK_LIM    = 00018051            

RM$PROBEREAD     ********   X   06   RMS$_DVI       = 000184F4            RMS$_OK_RLK    = 00018021            

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

RM1UPDATE       SEQUENTIAL SPECIFIC UPDATE                       21-AUG-1978 21:49:29   VAX-11 MACRO X0.3-11               Page  19

SYMBOL TABLE                                                                                                                     (3)



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            TPT$L_UPDATE1    ********   X   02   

RMS$_PLV       = 0001872C            UPDERR           0000002A R     02   

RMS$_POS       = 00018624            UPDERR1          0000001E R     04   

RMS$_PRM       = 0001862C            UPDERR_BR        00000030 R     06   

RMS$_PRV       = 0001829A            UPDERR_RSTNRP    00000027 R     02   

RMS$_QUO       = 00018634            UPDXIT           000000A7 R     02   

RMS$_RAB       = 0001863C            

RMS$_RAC       = 00018644            

RMS$_RAT       = 0001864C            

RMS$_RBF       = 00018654            

RMS$_RER       = 0001C0F4            

RMS$_REX       = 000182A2            

RMS$_RFA       = 0001865C            

RMS$_RFM       = 00018664            

RMS$_RHB       = 0001866C            

RMS$_RLF       = 00018674            

RMS$_RLK       = 000182AA            

RMS$_RMV       = 0001C0FC            

RMS$_RNF       = 000182B2            

RMS$_RNL       = 000181A0            

RMS$_ROP       = 0001867C            

RMS$_RPL       = 0001C104            

RMS$_RRV       = 00018684            

RMS$_RSA       = 000182DA            

RMS$_RSL       = 0001873C            

RMS$_RSS       = 00018694            

RMS$_RST       = 0001869C            

RMS$_RSZ       = 000186A4            

RMS$_RTB       = 000181A8            

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            

RM1UPDATE       SEQUENTIAL SPECIFIC UPDATE                       21-AUG-1978 21:49:29   VAX-11 MACRO X0.3-11               Page  20

PROGRAM SECTION SYNOPSIS                                                                                                         (3)







PROGRAM SECTION SYNOPSIS



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

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

$RMS1            00000140      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$RMS1           0000002A      04     NOPIC   USR   CON   REL   GBL NOSHR   EXE   RD  NOWRT BYTE  

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

$RMS1VFC         00000035      06     NOPIC   USR   CON   REL   GBL NOSHR   EXE   RD  NOWRT BYTE  





THERE WERE NO ERRORS OR WARNINGS.

7178. BYTES LEFT IN FREE MEMORY POOL.

2282. BYTES OF RECLAIMED MEMORY.

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

30 MLB DIR RDS - 1153 GETS TO DEFINE 28 MACROS. 91 INTER. FILE WRITES. 

