RM0XAB          XAB PROCESSING ROUTINES                          21-AUG-1978 21:31:53   VAX-11 MACRO X0.3-11               Page   0

TABLE OF CONTENTS   



   (1)      43  DECLARATIONS

   (1)     106  RM$OPEN_XAB  -  PROCESS XABS FOR $OPEN

   (1)     193  XAB_SCAN  -  COMMON XAB DISPATCH ROUTINE

   (1)     280  FHC XAB PROCESSING ROUTINES

   (1)     342  DAT XAB ROUTINE

   (1)     368  RDT XAB ROUTINES

   (1)     406  PRO XAB ROUTINES

   (1)     505  ALL XAB ROUTINES

   (1)     582  RM$SETALLOC  -  ROUTINE TO HANDLE ALLOC XAB FOR

RM0XAB          XAB PROCESSING ROUTINES                          21-AUG-1978 21:31:53   VAX-11 MACRO X0.3-11               Page   1

015                                                                                                                              (1)



                                     0000     1 	$BEGIN	RM0XAB,015,F$RMSOPEN0,<XAB PROCESSING ROUTINES>

                                     0000     2 

                                     0000     3 

                                     0000     4 ;

                                     0000     5 ; COPYRIGHT (C) 1976, 1977, 1978

                                     0000     6 ; DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASSACHUSETTS 01754

                                     0000     7 ;

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

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

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

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

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

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

                                     0000    14 ; REMAIN IN DEC.

                                     0000    15 ;

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

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

                                     0000    18 ; CORPORATION.

                                     0000    19 ;

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

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

                                     0000    22 

                                     0000    23 ;++

                                     0000    24 ; FACILITY: RMS32

                                     0000    25 ;

                                     0000    26 ; ABSTRACT:

                                     0000    27 ;		THIS MODULE CONTAINS THE ROUTINES TO PROCESS XABS

                                     0000    28 ;		FOR OPEN, DISPLAY, CREATE AND MODIFY.

                                     0000    29 ;

                                     0000    30 ; ENVIRONMENT:

                                     0000    31 ;		STAR PROCESSOR RUNNING STARLET EXEC.

                                     0000    32 ;

                                     0000    33 ; AUTHOR: L F LAVERDURE	,CREATION DATE: 27-SEP-77

                                     0000    34 ;

                                     0000    35 ; MODIFIED BY:

                                     0000    36 ;

                                     0000    37 ;	L F LAVERDURE,   24-MAY-78  14:43

                                     0000    38 ;	J A KRYCKA,	 19-AUG-78  13:10

                                     0000    39 ;

                                     0000    40 ; 01	- 

                                     0000    41 ;--

RM0XAB          XAB PROCESSING ROUTINES                          21-AUG-1978 21:31:53   VAX-11 MACRO X0.3-11               Page   2

015             DECLARATIONS                                                                                                     (1)



                                     0000    43 	.SBTTL	DECLARATIONS

                                     0000    44 ;

                                     0000    45 ; INCLUDE FILES:

                                     0000    46 ;

                                     0000    47 

                                     0000    48 ;

                                     0000    49 ; MACROS:

                                     0000    50 ;

                                     0000    51 	$ATRDEF

                                     0000    52 	$FABDEF

                                     0000    53 	$FHDDEF

                                     0000    54 	$FIBDEF

                                     0000    55 	$FWADEF

                                     0000    56 	$IFBDEF

                                     0000    57 	$XABDEF

                                     0000    58 	$XABALLDEF

                                     0000    59 	$XABDATDEF

                                     0000    60 	$XABFHCDEF

                                     0000    61 	$XABKEYDEF

                                     0000    62 	$XABPRODEF

                                     0000    63 	$XABRDTDEF

                                     0000    64 	$XABSUMDEF

                                     0000    65 	$XABTRMDEF

                                     0000    66 	.LIST MEB

                                     0000    67 

                                     0000    68 ;

                                     0000    69 ; EQUATED SYMBOLS:

                                     0000    70 ;

                           00000020  0000    71 	FOP=FAB$L_FOP*8		; BIT OFFSET TO FOP FIELD

                                     0000    72 ;

                                     0000    73 ;  DEFINE CASE INDEX VALUES FOR XAB DISPATCHING

                                     0000    74 ;  (NOTE: THESE MUST CORRESPOND TO THE OFFSETS IN THE XAB CASE DISPATCH)

                                     0000    75 ;

                           00000000  0000    76 	XBC$C_OPNFHC	==	0	; FHC XAB HANDLER FOR OPEN

                           00000001  0000    77 	XBC$C_OPNFHC1	==	1	; FHC XAB HANDLER FOR OPEN (PART 2)

                           00000002  0000    78 	XBC$C_OPNPRO	==	2	; PRO XAB HANDLER FOR OPEN

                           00000003  0000    79 	XBC$C_OPNDAT	==	3	; DAT XAB HANDLER FOR OPEN

                           00000004  0000    80 	XBC$C_CREALL0	==	4	; ALL XAB HANDLER FOR CREATE

                                     0000    81 					; (FOR SEQ. AND REL. F.O.)

                           00000005  0000    82 	XBC$C_EXTALL	==	5	; ALL XAB HANDLER FOR EXTEND

                           00000006  0000    83 	XBC$C_CREALL1	==	6	; ALL XAB HANDLER FOR CREATE (PART 2)

                           00000007  0000    84 	XBC$C_CREPRO	==	7	; PRO XAB HANDLER FOR CREATE

                           00000008  0000    85 	XBC$C_OPNRDT	==	8	; RDT XAB HANDLER FOR OPEN

                           00000009  0000    86 	XBC$C_OPNALL	==	9	; ALL XAB HANDLER FOR OPEN

                           0000000A  0000    87 	XBC$C_CLSPRO	==	10	; PRO XAB HANDLER FOR CLOSE

                           0000000B  0000    88 	XBC$C_CLSRDT	==	11	; RDT XAB HANDLER FOR CLOSE

                           0000000C  0000    89 	XBC$C_DSPFHC	==	12	; FHC XAB HANDLER FOR DISPLAY

                           0000000D  0000    90 	XBC$C_DSPFHC1	==	13	; FHC XAB HANDLER FOR DISPLAY (PART 2)

                           0000000E  0000    91 	XBC$C_DSPALL	==	14	; ALL XAB HANDLER FOR DISPLAY

                           0000000F  0000    92 	XBC$C_DSPALL1	==	15	; ALL XAB HANDLER FOR DISPLAY (PART 2)

                           00000010  0000    93 	XBC$C_CREALL2	==	16	; ALL XAB HANDLER FOR CREATE (PART 3)

                                     0000    94 

                                     0000    95 ;

                                     0000    96 ; OWN STORAGE:

                                     0000    97 ;

                                     0000    98 ;

                                     0000    99 ;  TABLE WITH ALL VALID XAB CODES FOR VALIDATION

RM0XAB          XAB PROCESSING ROUTINES                          21-AUG-1978 21:31:53   VAX-11 MACRO X0.3-11               Page   3

015             DECLARATIONS                                                                                                     (1)



                                     0000   100 ;

                        15 1D 12 14  0000   101 XABTBL:	.BYTE	XAB$C_ALL,XAB$C_DAT,XAB$C_FHC,XAB$C_KEY,XAB$C_PRO,-

                        1F 14 1E 13  0004   102 		XAB$C_RDT,XAB$C_SUM,XAB$C_TRM

                           00000008  0008   103 XABTBLLEN=.-XABTBL

                                     0008   104 

RM0XAB          XAB PROCESSING ROUTINES                          21-AUG-1978 21:31:53   VAX-11 MACRO X0.3-11               Page   4

015             RM$OPEN_XAB  -  PROCESS XABS FOR $OPEN                                                                           (1)



                                     0008   106 	.SBTTL	RM$OPEN_XAB  -  PROCESS XABS FOR $OPEN

                                     0008   107 ;++

                                     0008   108 ; FUNCTIONAL DESCRIPTION:

                                     0008   109 ;

                                     0008   110 ;  THESE SUBROUTINE PROCESS THE XABS FOR OPEN.  THEY ARE HANDLED IN

                                     0008   111 ;  TWO PARTS, THE FIRST EXECUTING BEFORE DOING THE ACCESS QIO,

                                     0008   112 ;  THE OTHER AFTER.

                                     0008   113 ;

                                     0008   114 ;  THIS SECTION OF THE MODULE ALSO INCLIDES THE COMMON XAB CHAIN 

                                     0008   115 ;  FOLLOWING AND DISPATCH CODE.

                                     0008   116 ;

                                     0008   117 ; CALLING SEQUENCE:

                                     0008   118 ;

                                     0008   119 ;	BSBW	RMKIOPEN_XAB		; FIRST PART

                                     0008   120 ;	BSBW	RM$OPENXAB1		; SECOND PART

                                     0008   121 ;

                                     0008   122 ; INPUT PARAMETERS:

                                     0008   123 ;

                                     0008   124 ;	R11	IMPURE AREA ADDRESS

                                     0008   125 ;	R10	FILE WORK PAGE ADDRESS

                                     0008   126 ;	R9	IFAB ADDRESS

                                     0008   127 ;	R8	FAB ADDRESS

                                     0008   128 ;	R6	FIB ADDRESS (IF ANY)

                                     0008   129 ;	R5	NEXT ATTRIBUTE ADDRESS (IF APPLICABLE)

                                     0008   130 ;

                                     0008   131 ; IMPLICIT INPUTS:

                                     0008   132 ;

                                     0008   133 ;	FAB$L_XAB AND THE XABS WITHIN THE CHAIN THUS DEFINED

                                     0008   134 ;

                                     0008   135 ; OUTPUT PARAMETERS:

                                     0008   136 ;

                                     0008   137 ;	ATTRIBUTE LIST ENTRIES ARE ADDED SUCH THAT THE REQUESTED FILE

                                     0008   138 ;	ATTRIBUTES ARE FILLED IN.

                                     0008   139 ;	R5	UPDATED TO POINT TO THE NEXT AVAILABLE ATTRIBUTE ADDRESS

                                     0008   140 ;	R4		ZERO IF NO XABS PROCESSED, OTHERWISE NON-ZERO

                                     0008   141 ;			(IN GENERAL, BIT CORRESPONDING TO CASE HANDLER INDEX

                                     0008   142 ;			IS SET FOR EACH HANDLER CALLED)

                                     0008   143 ;	R1-R3,AP	DESTROYED

                                     0008   144 ;	R0	STATUS CODE

                                     0008   145 ;

                                     0008   146 ; IMPLICIT OUTPUTS:

                                     0008   147 ;

                                     0008   148 ;	THE VARIOUS FIELDS OF THE XABS ARE FILLED IN.

                                     0008   149 ;

                                     0008   150 ; COMPLETION CODES:

                                     0008   151 ;

                                     0008   152 ;	STANDARD RMS, IN PARTICULAR SUC, XAB, COD, IMX AND VARIOUS OTHERS.

                                     0008   153 ;

                                     0008   154 ; SIDE EFFECTS:

                                     0008   155 ;

                                     0008   156 ;	NONE

                                     0008   157 ;

                                     0008   158 ;--

RM0XAB          XAB PROCESSING ROUTINES                          21-AUG-1978 21:31:53   VAX-11 MACRO X0.3-11               Page   5

015             RM$OPEN_XAB  -  PROCESS XABS FOR $OPEN                                                                           (1)



                                     0008   160 ;

                                     0008   161 ;  THE FOLLOWING TABLE PROVIDES THE DISPATCHING INFORMATION FOR THOSE XABS

                                     0008   162 ;  THAT ARE INPUT TO $OPEN AND REQUIRE AN ENTRY IN THE FILES ATTRIBUTE LIST.

                                     0008   163 ;  THE ENTRIES CONSIST OF THE XAB CODE, ITS LENGTH, AND ITS CASE INDEX.

                                     0008   164 ;

                                     0008   165 OPNXAB_ARGS:

                           00 2C 1D  0008   166 	.BYTE	XAB$C_FHC,XAB$C_FHCLEN,XBC$C_OPNFHC

                           02 10 13  000B   167 	.BYTE	XAB$C_PRO,XAB$C_PROLEN,XBC$C_OPNPRO

                           03 24 12  000E   168 	.BYTE	XAB$C_DAT,XAB$C_DATLEN,XBC$C_OPNDAT

                           08 14 1E  0011   169 	.BYTE	XAB$C_RDT,XAB$C_RDTLEN,XBC$C_OPNRDT

                                 00  0014   170 	.BYTE	0					; END OF TABLE FLAG

                                     0015   171 ;

                                     0015   172 ;  THE FOLLOWING TABLE SPECIFIES THOSE XABS TO OPEN THAT REQUIRE PROCESSING

                                     0015   173 ;  AFTER THE ACCESS QIO HAS BEEN PERFORMED.

                                     0015   174 ;

                                     0015   175 OPNXAB1_ARGS:

                           01 2C 1D  0015   176 	.BYTE	XAB$C_FHC,XAB$C_FHCLEN,XBC$C_OPNFHC1

                                     0018   177 OPNXAB1_ARGS_NT::

                           09 20 14  0018   178 	.BYTE	XAB$C_ALL,XAB$C_ALLLEN,XBC$C_OPNALL

                                 00  001B   179 	.BYTE	0

                                     001C   180 ;

                                     001C   181 ;  ENTRY POINT FOR PROCESSING OPEN XABS (PART 2)

                                     001C   182 ;

                                     001C   183 RM$OPEN_XAB1::

            5C         F6 AF     9E  001C   184 	MOVAB	OPNXAB1_ARGS,AP			; SET ARG LIST ADDR

                          04     11  0020   185 	BRB	XAB_SCAN			; AND GO PROCESS

                                     0022   186 ;

                                     0022   187 ;  ENTRY POINT FOR PROCESSING OPEN XABS (PART 1)

                                     0022   188 ;

                                     0022   189 RM$OPEN_XAB::

            5C         E3 AF     9E  0022   190 	MOVAB	OPNXAB_ARGS,AP			; SET ARG LIST ADDR

                                     0026   191 						; AND FALL THRU TO XAB_SCAN

RM0XAB          XAB PROCESSING ROUTINES                          21-AUG-1978 21:31:53   VAX-11 MACRO X0.3-11               Page   6

015             XAB_SCAN  -  COMMON XAB DISPATCH ROUTINE                                                                         (1)



                                     0026   193 	.SBTTL	XAB_SCAN  -  COMMON XAB DISPATCH ROUTINE

                                     0026   194 ;

                                     0026   195 ;  THIS ROUTINE SCANS THE XAB CHAIN FOR A MATCH ON ANY OF THOSE XABS

                                     0026   196 ;  SPECIFIED IN THE ARGUMENT LIST.  IF AN XAB IS FOUND IT IS PROBED

                                     0026   197 ;  AND DISPATCH IS MADE TO THE ROUTINE INDICATED BY THE ARGUMENT LIST

                                     0026   198 ;  CASE INDEX.

                                     0026   199 ;

                                     0026   200 RM$XAB_SCAN::

                                     0026   201 XAB_SCAN:

                          54     D4  0026   202 	CLRL	R4				; CLEAR UNIQUENESS VECTOR

            53         24 A8     D0  0028   203 	MOVL	FAB$L_XAB(R8),R3		; GET 1ST XAB ADDRESS

                          5C     13  002C   204 CHKXAB:	BEQL	SUCXIT				; ALL DONE IF NONE

                                     002E   205 	IFNORD	#XAB$L_NXT+4,(R3),ERRXAB,IFB$B_MODE(R9)	; PROBE READABILITY

            08         0A A9     0C  002E       		PROBER	IFB$B_MODE(R9),#XAB$L_NXT+4,(R3)

                          63         0032       

                          59     13  0033       		BEQL	ERRXAB

            52            5C     D0  0035   206 	MOVL	AP,R2				; GET ADDRESS OF SCAN TABLE

            63            82     91  0038   207 10$:	CMPB	(R2)+,XAB$B_COD(R3)		; XAB CODE MATCH THIS ENTRY?

                          14     13  003B   208 	BEQL	GOTXAB				; BRANCH IF YES

            52            02     C0  003D   209 	ADDL2	#2,R2				; NEXT TABLE ENTRY

                          62     95  0040   210 	TSTB	(R2)				; END OF TABLE?

                          F4     12  0042   211 	BNEQ	10$				; BRANCH IF NOT

                                     0044   212 ;

                                     0044   213 ;  FOUND NO MATCH IN THE TABLE.

                                     0044   214 ;  CHECK AGAINST ALL XAB CODES FOR AT LEAST VALID AND IF SO IGNORE IT.

                                     0044   215 ;

            08            63     3A  0044   216 	LOCC	XAB$B_COD(R3),#XABTBLLEN,XABTBL	; KNOWN CODE?

                       B7 AF         0047       

                          46     13  0049   217 	BEQL	ERRCOD				; BRANCH IF NOT

            53         04 A3     D0  004B   218 NXTXAB:	MOVL	XAB$L_NXT(R3),R3		; GET NEXT XAB IN CHAIN

                          DB     11  004F   219 	BRB	CHKXAB				; GO PROCESS

                                     0051   220 ;

                                     0051   221 ;  FOUND A MATCH IN THE XAB TABLE.

                                     0051   222 ;  CHECK THE LENGTH, PROBE IT, AND DISPATCH TO THE HANDLER.

                                     0051   223 ;

            50         01 A3     9A  0051   224 GOTXAB:	MOVZBL	XAB$B_BLN(R3),R0		; GET XAB LENGTH FIELD

            82            50     91  0055   225 	CMPB	R0,(R2)+			; IS LENGTH < MIN.?

                          34     1F  0058   226 	BLSSU	ERRXAB				; BRANCH IF YES

            50         0A A9     0D  005A   227 	PROBEW	IFB$B_MODE(R9),R0,(R3)		; PROBE WRITEABILITY

                          63         005E       

                          2D     13  005F   228 	BEQL	ERRXAB				; BRANCH IF NO ACCESS

                       E7 AF     9F  0061   229 	PUSHAB	NXTXAB				; PUSH RETURN PC

                                     0064   230 	CASE	TYPE=B,SRC=(R2),-		; AND GO PROCESS

                                     0064   231 	DISPLIST=<XABOPNFHC,XABOPNFHC1,XABOPNPRO,XABOPNDAT,-

                                     0064   232 		XABCREALL0,RM$EXTEND_XAB,XABCREALL1,XABCREPRO,-

                                     0064   233 		XABOPNRDT,XABOPNALL,XABCLSPRO,XABCLSRDT,-

                                     0064   234 		XABDSPFHC,XABDSPFHC1,XABDSPALL,XABDSPALL1,-

                                     0064   235 		XABCREALL2>

            00            62     8F  0064       	CASEB	(R2),#0,S^#<<30001$-30000$>/2>-1

                          10'        0067       

                                     0068       30000$:

                               0039' 0068       	.WORD	XABOPNFHC-30000$

                               0053' 006A       	.WORD	XABOPNFHC1-30000$

                               00BB' 006C       	.WORD	XABOPNPRO-30000$

                               0078' 006E       	.WORD	XABOPNDAT-30000$

                               0189' 0070       	.WORD	XABCREALL0-30000$

                               FF98' 0072       	.WORD	RM$EXTEND_XAB-30000$

RM0XAB          XAB PROCESSING ROUTINES                          21-AUG-1978 21:31:53   VAX-11 MACRO X0.3-11               Page   7

015             XAB_SCAN  -  COMMON XAB DISPATCH ROUTINE                                                                         (1)



                               0144' 0074       	.WORD	XABCREALL1-30000$

                               00D7' 0076       	.WORD	XABCREPRO-30000$

                               0092' 0078       	.WORD	XABOPNRDT-30000$

                               012A' 007A       	.WORD	XABOPNALL-30000$

                               0102' 007C       	.WORD	XABCLSPRO-30000$

                               00AB' 007E       	.WORD	XABCLSRDT-30000$

                               002F' 0080       	.WORD	XABDSPFHC-30000$

                               0059' 0082       	.WORD	XABDSPFHC1-30000$

                               011B' 0084       	.WORD	XABDSPALL-30000$

                               012F' 0086       	.WORD	XABDSPALL1-30000$

                               0171' 0088       	.WORD	XABCREALL2-30000$

                                     008A       30001$:

                                     008A   236 						; (NOTE: SHOULD NEVER FALL THRU)

                                     008A   237 ;

                                     008A   238 ;  DISPATCH WITH STANDARD R8 THRU R11 AND

                                     008A   239 ;	R6 = FIB ADDRESS

                                     008A   240 ;	R5 = ADDR TO BUILD NEXT ATTRIBUTE LIST ENTRY

                                     008A   241 ;	R4 = XAB UNIQUENESS BIT VECTOR

                                     008A   242 ;	R3 = XAB ADDRESS

                                     008A   243 ;

                                     008A   244 ;  MUST RETURN WITH R4 AND R5 UPDATED AS NECESSARY AND ONLY R0 THRU R2

                                     008A   245 ;  MODIFIED.  NOTE: AP MUST NOT BE MODIFIED.

                                     008A   246 ;

                                     008A   247 ;  ERROR ROUTINE SHOULD CLEAN RETURN PC FROM STACK AND RSB WITH ERROR CODE IN R0.

                                     008A   248 ;

                                     008A   249 SUCXIT:	RMSSUC

            50            01     D0  008A       		MOVL	#1,R0

                                 05  008D   250 	RSB

RM0XAB          XAB PROCESSING ROUTINES                          21-AUG-1978 21:31:53   VAX-11 MACRO X0.3-11               Page   8

015             XAB_SCAN  -  COMMON XAB DISPATCH ROUTINE                                                                         (1)



                                     008E   252 ;

                                     008E   253 ;  HANDLE ERRORS.  PROBELM COULD BE:

                                     008E   254 ;

                                     008E   255 ;	- NON-ACCESSIBLE XAB

                                     008E   256 ;	- INVALID XAB LENGTH

                                     008E   257 ;

                                     008E   258 ERRXAB:	$PSECT_BR	L$RMS0

                          FF6F'  31  008E       		BRW	L$RMS00

                                     0091       		.SAVE

                                 00000000       		.PSECT	L$RMS0,GBL,NOWRT

                                     0000       L$RMS00:

                                     0000   259 	RMSERR	XAB				; DECLARE ERROR

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

         0C A8            53     D0  0005   260 SETSTV:	MOVL	R3,FAB$L_STV(R8)		; GIVE ADDRESS

                                 05  0009   261 	RSB

                                     000A   262 	$PSECT_RESTORE

                                 00000091       		.RESTORE

                                     0091   263 ;

                                     0091   264 ;  HANDLE INVALID XAB CODE ERROR

                                     0091   265 ;

                                     0091   266 ERRCOD:	$PSECT_BR	L$RMS0

                          FF76'  31  0091       		BRW	L$RMS01

                                     0094       		.SAVE

                                 0000000A       		.PSECT	L$RMS0,GBL,NOWRT

                                     000A       L$RMS01:

                                     000A   267 	RMSERR	COD

            50       0000'8F     3C  000A       		MOVZWL	#<RMS$_COD&^XFFFF>,R0

                          F4     11  000F   268 	BRB	SETSTV

                                     0011   269 	$PSECT_RESTORE

                                 00000094       		.RESTORE

                                     0094   270 ;

                                     0094   271 ;  HANDLE INVALID DUPLICATE XAB ERROR

                                     0094   272 ;

                                     0094   273 ERRIMX:	$PSECT_BR	L$RMS0

                          FF7A'  31  0094       		BRW	L$RMS02

                                     0097       		.SAVE

                                 00000011       		.PSECT	L$RMS0,GBL,NOWRT

                                     0011       L$RMS02:

                                     0011   274 RM$ERRIMX::

                                     0011   275 	RMSERR	IMX

            50       0000'8F     3C  0011       		MOVZWL	#<RMS$_IMX&^XFFFF>,R0

                          8E     D5  0016   276 CLNSTK:	TSTL	(SP)+				; REMOVE RETURN PC FROM STACK

                          EB     11  0018   277 	BRB	SETSTV

                                     001A   278 	$PSECT_RESTORE

                                 00000097       		.RESTORE

RM0XAB          XAB PROCESSING ROUTINES                          21-AUG-1978 21:31:53   VAX-11 MACRO X0.3-11               Page   9

015             FHC XAB PROCESSING ROUTINES                                                                                      (1)



                                     0097   280 	.SBTTL	FHC XAB PROCESSING ROUTINES

                                     0097   281 ;++

                                     0097   282 ;  XAB ROUTINE TO PROCESS THE FILE HEADER CHARACTERISTICS XAB FOR $OPEN,

                                     0097   283 ;  $CREATE, AND $DISPLAY

                                     0097   284 ;

                                     0097   285 ;  CALLED IN TWO PARTS.  THE FIRST PART MERELY BUILDS AN ATTRIBUTE LIST 

                                     0097   286 ;  ENTRY TO READ THE RECORD ATTRIBUTES INTO THE USER'S XAB.

                                     0097   287 ;

                                     0097   288 ;  THE SECOND PART FILLS IN THE SBN AND SWAPS THE EBK AND HBK FIELDS.

                                     0097   289 ;--

                                     0097   290 ;++

                                     0097   291 ;

                                     0097   292 ;  ENTRY POINT FOR $DISPLAY PROCESSING. (MUST READ IN STATISTICS BLOCK)

                                     0097   293 ;

                                     0097   294 ;--

                                     0097   295 XABDSPFHC:

            85            04     B0  0097   296 	MOVW	#4,(R5)+			; READ ONLY SBN LONGWORD

            85            09     B0  009A   297 	MOVW	#ATR$C_STATBLK,(R5)+		;   OF STATISTICS BLOCK

            85         28 A3     DE  009D   298 	MOVAL	XAB$L_SBN(R3),(R5)+		; READ DIRECTLY INTO XAB

                                     00A1   299 ;++

                                     00A1   300 ;

                                     00A1   301 ;  ENTRY POINT FOR $OPEN AND $CREATE PROCESSING. (READ IN RECORD ATTRIBUTES)

                                     00A1   302 ;

                                     00A1   303 ;--

                                     00A1   304 XABOPNFHC:

            54            00     E2  00A1   305 	BBSS	#XBC$C_OPNFHC,R4,ERRIMX		; FLAG XAB SEEN, ERROR

                          EF         00A4       

                                     00A5   306 						; IF ALREADY ONE

            85            20     B0  00A5   307 	MOVW	#32,(R5)+			; RETURN ALL 32 BYTES

            85            04     B0  00A8   308 	MOVW	#ATR$C_RECATTR,(R5)+		; READ RECORD ATTRIBUTES

            85         08 A3     DE  00AB   309 	MOVAL	XAB$B_RFO(R3),(R5)+		; ADDRESS TO READ ATTR.S

            01         1F A8     91  00AF   310 	CMPB	FAB$B_RFM(R8),#FAB$C_FIX	; FIXED REC. FORMAT?

                          05     13  00B3   311 	BEQL	10$				; BRANCH IF YES

         3E A9         0A A3     B0  00B5   312 	MOVW	XAB$W_LRL(R3),IFB$W_LRL(R9)	; COPY LONGEST REC. LEN.

                                     00BA   313 						;  IN CASE THIS IS $CREATE

                                 05  00BA   314 10$:	RSB

                                     00BB   315 ;++

                                     00BB   316 ;

                                     00BB   317 ;  PART 2 (CALLED AFTER THE ACCESS QIO)

                                     00BB   318 ;

                                     00BB   319 ;++

                                     00BB   320 ;

                                     00BB   321 ;  ENTRY POINT FOR $OPEN

                                     00BB   322 ;

                                     00BB   323 ;--

                                     00BB   324 XABOPNFHC1:

         28 A3       0094 CA     D0  00BB   325 	MOVL	FWA$L_SBN(R10),XAB$L_SBN(R3)		; SET STARTING LBN

                                     00C1   326 ;++

                                     00C1   327 ;

                                     00C1   328 ;  ENTRY POINT FOR $DISPLAY

                                     00C1   329 ;

                                     00C1   330 ;--

                                     00C1   331 XABDSPFHC1:

         28 A3            10     9C  00C1   332 	ROTL	#16,XAB$L_SBN(R3),XAB$L_SBN(R3)	; SWAP HALVES OF START LBN

                       28 A3         00C5       

         10 A3            10     9C  00C7   333 	ROTL	#16,XAB$L_EBK(R3),XAB$L_EBK(R3)	; SWAP HALVES OF EBK

                       10 A3         00CB       

RM0XAB          XAB PROCESSING ROUTINES                          21-AUG-1978 21:31:53   VAX-11 MACRO X0.3-11               Page  10

015             FHC XAB PROCESSING ROUTINES                                                                                      (1)



                          0B     12  00CD   334 	BNEQ	10$				; BRANCH IF NON-ZERO

                                     00CF   335 	ASSUME	FAB$C_SEQ EQ 0

                       23 A9     95  00CF   336 	TSTB	IFB$B_ORGCASE(R9)		; SEQUENTIAL FILE ORG?

                          06     13  00D2   337 	BEQL	10$				; BRANCH IF YES

         40 A9            01     C1  00D4   338 	ADDL3	#1,IFB$L_HBK(R9),XAB$L_EBK(R3)	; SET EBK FROM HBK + 1

                       10 A3         00D8       

         0C A3         40 A9     D0  00DA   339 10$:	MOVL	IFB$L_HBK(R9),XAB$L_HBK(R3)	; SET HBK FROM IFAB

                                 05  00DF   340 	RSB

RM0XAB          XAB PROCESSING ROUTINES                          21-AUG-1978 21:31:53   VAX-11 MACRO X0.3-11               Page  11

015             DAT XAB ROUTINE                                                                                                  (1)



                                     00E0   342 	.SBTTL	DAT XAB ROUTINE

                                     00E0   343 ;++

                                     00E0   344 ;  ROUTINE TO PROCESS THE DATE AND TIME XAB FOR $OPEN, $CREATE, & $DISPLAY.

                                     00E0   345 ;

                                     00E0   346 ;  IN ALL THREE CASES ATTRIBUTE LIST ENTRIES ARE MADE FOR CREATION DATE & TIME,

                                     00E0   347 ;  EXPIRATION DATE & TIME, REVISION DATE & TIME, AND REVISION COUNT.

                                     00E0   348 ;

                                     00E0   349 ;  !!! \NOTE: THIS ROUTINE SHOULD BE MODIFIED WHEN A SINGLE ATTRIBUTE CAN

                                     00E0   350 ;	      HANDLE ALL FOUR.\ !!!

                                     00E0   351 ;

                                     00E0   352 ;--

                                     00E0   353 XABOPNDAT:

            54            03     E2  00E0   354 	BBSS	#XBC$C_OPNDAT,R4,ERRIMX		; FLAG XAB SEEN, ERROR

                          B0         00E3       

                                     00E4   355 						; IF ALREADY ONE

                                     00E4   356 ;

                                     00E4   357 ; MAKE ATTRBUTE LIST ENTRIES FOR CREATION & EXPIRATION DATE & TIME

                                     00E4   358 ;

            85            08     B0  00E4   359 	MOVW	#8,(R5)+			; DATE LENGTH

            85            11     B0  00E7   360 	MOVW	#ATR$C_CREDATE,(R5)+		; XFER CREATION DATE

            85         14 A3     DE  00EA   361 	MOVAL	XAB$Q_CDT(R3),(R5)+		; XFER ADDRESS

            85            08     B0  00EE   362 	MOVW	#8,(R5)+			; DATE LENGTH

            85            13     B0  00F1   363 	MOVW	#ATR$C_EXPDATE,(R5)+		; XFER EXPIRATION DATE

            85         1C A3     DE  00F4   364 	MOVAL	XAB$Q_EDT(R3),(R5)+		; XFER ADDRESS

                          04     11  00F8   365 	BRB	REV_DATE_COUNT			; MAKE ATTR ENTRIES FOR REVISION

                                     00FA   366 						; DATE & COUNT AND RETURN

RM0XAB          XAB PROCESSING ROUTINES                          21-AUG-1978 21:31:53   VAX-11 MACRO X0.3-11               Page  12

015             RDT XAB ROUTINES                                                                                                 (1)



                                     00FA   368 	.SBTTL	RDT XAB ROUTINES

                                     00FA   369 ;++

                                     00FA   370 ;  ROUTINE TO PROCESS THE REVISION DATE AND TIME XAB FOR $OPEN, $CREATE, & $DISPLAY.

                                     00FA   371 ;

                                     00FA   372 ;  IN ALL THREE CASES ATTRIBUTE LIST ENTRIES ARE MADE FOR REVISION DATE & TIME

                                     00FA   373 ;  AND REVISION COUNT.

                                     00FA   374 ;

                                     00FA   375 ;  !!! \NOTE: THIS ROUTINE SHOULD BE MODIFIED WHEN A SINGLE ATTRIBUTE CAN

                                     00FA   376 ;	      HANDLE BOTH.\ !!!

                                     00FA   377 ;

                                     00FA   378 ;--

                                     00FA   379 XABOPNRDT:

            54            08     E2  00FA   380 	BBSS	#XBC$C_OPNRDT,R4,ERRIMX		; FLAG XAB SEEN, ERROR

                          96         00FD       

                                     00FE   381 						; IF ALREADY ONE

                                     00FE   382 REV_DATE_COUNT:

            85            08     B0  00FE   383 	MOVW	#8,(R5)+			; DATE LENGTH

            85            12     B0  0101   384 	MOVW	#ATR$C_REVDATE,(R5)+		; XFER REVISION DATE

            85         0C A3     DE  0104   385 	MOVAL	XAB$Q_RDT(R3),(R5)+		; XFER ADDRESS

            85            02     B0  0108   386 	MOVW	#2,(R5)+			; REVISION COUNT LENGTH

            85            0D     B0  010B   387 	MOVW	#ATR$C_ASCDATES,(R5)+		; REVISION COUNT ATTRIBUTE CODE

            85         08 A3     3E  010E   388 	MOVAW	XAB$W_RVN(R3),(R5)+		; ADDRESS TO XFER RVN

                                 05  0112   389 	RSB

                                     0113   390 

                                     0113   391 ;++

                                     0113   392 ;  ROUTINE TO PROCESS RDT XAB FOR $CLOSE.

                                     0113   393 ;

                                     0113   394 ;  SAME PROCESSING AS FOR $OPEN RDT EXCEPT THAT ATTRIBUTE LIST ENTRIES ARE

                                     0113   395 ;  BUILT ON THE STACK.

                                     0113   396 ;

                                     0113   397 ;--

                                     0113   398 XABCLSRDT:

            54            0B     E2  0113   399 	BBSS	#XBC$C_CLSRDT,R4,ERRIMX_BR1	; FLAG XAB SEEN , ERROR

                          50         0116       

                                     0117   400 						; IF ALREADY ONE

            5E            08     C2  0117   401 	SUBL2	#8,SP				; CREATE 8 BYTES ON STACK

            55            5E     D0  011A   402 	MOVL	SP,R5				; BUILD ATTR. LIST ENTRIES HERE

            7E         08 AE     7D  011D   403 	MOVQ	8(SP),-(SP)			; RETURN ADDRS TO BOTTOM OF STK

                          DB     11  0121   404 	BRB	REV_DATE_COUNT			; BUILD ATTR LIST ENTRIES

RM0XAB          XAB PROCESSING ROUTINES                          21-AUG-1978 21:31:53   VAX-11 MACRO X0.3-11               Page  13

015             PRO XAB ROUTINES                                                                                                 (1)



                                     0123   406 	.SBTTL	PRO XAB ROUTINES

                                     0123   407 ;++

                                     0123   408 ;  XABOPNPRO ROUTINE TO PROCESS THE PRO XAB FOR $OPEN AND $DISPLAY

                                     0123   409 ;

                                     0123   410 ;  ATTRIBUTE LIST ENTRIES TO READ THE FILE'S PROTECTION & OWNER UIC ARE MADE

                                     0123   411 ;

                                     0123   412 ;--

                                     0123   413 XABOPNPRO:

            54            02     E2  0123   414 	BBSS	#XBC$C_OPNPRO,R4,ERRIMX_BR1	; FLAG XAB SEEN, ERROR

                          40         0126       

                                     0127   415 						; IF ALREADY ONE

                          0B     10  0127   416 	BSBB	UIC				; MAKE UIC ATTR. LIST ENTRY

                                     0129   417 ;

                                     0129   418 ;  MAKE PROTECTION ATTRIBUTE LIST ENTRY

                                     0129   419 ;

            85            02     B0  0129   420 PRO:	MOVW	#2,(R5)+			; LENGTH OF PROTECTION ATTR.

            85            16     B0  012C   421 	MOVW	#ATR$C_FPRO,(R5)+		; XFER FILE PROTECTION

            85         08 A3     DE  012F   422 	MOVAL	XAB$W_PRO(R3),(R5)+		; XFER DIRECTLY TO/FROM XAB

                                 05  0133   423 	RSB

                                     0134   424 

                                     0134   425 ;++

                                     0134   426 ;

                                     0134   427 ;  PUT UIC ATTRIBUTE CODE INTO ATTRIBUTE LIST

                                     0134   428 ;

                                     0134   429 ;--

            85            04     B0  0134   430 UIC:	MOVW	#4,(R5)+			; UIC LENGTH

            85            15     B0  0137   431 	MOVW	#ATR$C_UIC,(R5)+		; XFER FILE OWNER UIC

            85         0C A3     DE  013A   432 	MOVAL	XAB$L_UIC(R3),(R5)+		; ADDR TO XFER UIC

                                 05  013E   433 	RSB

RM0XAB          XAB PROCESSING ROUTINES                          21-AUG-1978 21:31:53   VAX-11 MACRO X0.3-11               Page  14

015             PRO XAB ROUTINES                                                                                                 (1)



                                     013F   435 ;++

                                     013F   436 ;  XABCREPRO ROUTINE TO PROCESS THE PRO XAB FOR $CREATE

                                     013F   437 ;

                                     013F   438 ;  CHECKS FOR DEFAULT UIC (I.E., 0) AND IF FOUND THEN NEED MERELY READ

                                     013F   439 ;  UIC IF CIF SET, ELSE DON'T PROCESS UIC, ALLOWING ACP DEFAULT.

                                     013F   440 ;

                                     013F   441 ;  ALSO CHECK FOR DEFAULT PRO (I.E., -1  -  NO ACCESS TO ANYONE), AND IF FOUND

                                     013F   442 ;  USE PROCESS DEFAULT FILE PROTECTION

                                     013F   443 ;

                                     013F   444 ;--

                                     013F   445 XABCREPRO:

            54            07     E2  013F   446 	BBSS	#XBC$C_CREPRO,R4,ERRIMX_BR1	; FLAG XAB SEEN, ERROR

                          24         0142       

                                     0143   447 						; IF ALREADY ONE

                                     0143   448 ;

                                     0143   449 ;  HANDLE UIC

                                     0143   450 ;

                       0C A3     D5  0143   451 	TSTL	XAB$L_UIC(R3)			; UIC = 0?

                          0C     12  0146   452 	BNEQ	20$				; BRANCH IF NOT

            68            39     E1  0148   453 	BBC	#FAB$V_CIF+FOP,(R8),40$		; BRANCH UNLESS CIF SET

                          0A         014B       

                          E6     10  014C   454 	BSBB	UIC				; SPECIFY UIC READ

         FA A5            1A     B0  014E   455 	MOVW	#ATR$C_UIC_RO,-6(R5)		; MAKE SURE UIC NOT WRITTEN

                                     0152   456 						; IF FILE CREATED

                          02     11  0152   457 	BRB	40$

                          DE     10  0154   458 20$:	BSBB	UIC				; USE NON-ZERO UIC

                                     0156   459 40$:

                                     0156   460 ;

                                     0156   461 ;  HANDLE PROTECTION

                                     0156   462 ;

                                     0156   463 PRO_DEFAULT:

         08 A3            01     A1  0156   464 	ADDW3	#1,XAB$W_PRO(R3),R0		; IS PRO SPEC = -1?

                          50         015A       

                          08     12  015B   465 	BNEQ	60$				; BRANCH IF NOT

         08 A3   00000000'9F     B0  015D   466 	MOVW	@#PIO$GW_DFPROT,XAB$W_PRO(R3)	; YES - SET DEFAULT

                          C2     11  0165   467 60$:	BRB	PRO

                                     0167   468 

                                     0167   469 ;++

                                     0167   470 ;

                                     0167   471 ;  EXTENDED BRANCH FOR ERROR

                                     0167   472 ;

                                     0167   473 ;--

                                     0167   474 ERRIMX_BR1:

                          FF2A   31  0167   475 	BRW	ERRIMX

RM0XAB          XAB PROCESSING ROUTINES                          21-AUG-1978 21:31:53   VAX-11 MACRO X0.3-11               Page  15

015             PRO XAB ROUTINES                                                                                                 (1)



                                     016A   477 ;++

                                     016A   478 ;  XABCLSPRO ROUTINE TO PROCESS THE PRO XAB FOR $CLOSE

                                     016A   479 ;

                                     016A   480 ;  CHECKS FOR DEFAULT UIC (I.E., 0) AND IF FOUND THEN DON'T PROCESS UIC

                                     016A   481 ;

                                     016A   482 ;  ALSO CHECK FOR DEFAULT PRO (I.E., -1  -  NO ACCESS TO ANYONE), AND IF FOUND

                                     016A   483 ;  USE PROCESS DEFAULT FILE PROTECTION

                                     016A   484 ;

                                     016A   485 ;--

                                     016A   486 XABCLSPRO:

            54            0A     E2  016A   487 	BBSS	#XBC$C_CLSPRO,R4,ERRIMX_BR1	; FLAG XAB SEEN, ERROR

                          F9         016D       

                                     016E   488 						; IF ALREADY ONE

                                     016E   489 ;

                                     016E   490 ;  HANDLE UIC

                                     016E   491 ;

                       0C A3     D5  016E   492 	TSTL	XAB$L_UIC(R3)			; UIC = 0?

                          08     13  0171   493 	BEQL	10$				; BRANCH IF YES

            55            5E     D0  0173   494 	MOVL	SP,R5				; POINT TO ATTR. LIST ENTRY ON STACK

            7E            6E     7D  0176   495 	MOVQ	(SP),-(SP)			; CREATE 8 BYTES ON STACK

                                     0179   496 						; FOR UIC ATTRIBUTE ENTRY

                          B9     10  0179   497 	BSBB	UIC				; SPECIFY UIC WRITE

                                     017B   498 10$:

                                     017B   499 ;

                                     017B   500 ;  PROCESS PRO

                                     017B   501 ;

            55            5E     D0  017B   502 	MOVL	SP,R5				; POINT TO ATTR. LIST ENTRY ON STACK

            7E            6E     7D  017E   503 	MOVQ	(SP),-(SP)			; CREATE 8 FREE BYTES ON STACK

                          D3     11  0181   504 	BRB	PRO_DEFAULT			; GO PROCESS PROTECTION

                                     0183   505 	.SBTTL	ALL XAB ROUTINES

                                     0183   506 ;++

                                     0183   507 ;  ROUTINES TO HANDLE ALLOCATION XAB FOR $OPEN AND $DISPLAY

                                     0183   508 ;

                                     0183   509 ;  SETS THE ALQ, DEQ, BKZ, AND AOP (CTG AND CBT BITS ONLY) FIELDS OF THE XAB

                                     0183   510 ;

                                     0183   511 ;--

                                     0183   512 ;++

                                     0183   513 ;

                                     0183   514 ;  ENTRY POINT FOR $DISPLAY TO CAUSE THE USER CHARACTERISTICS BITS TO

                                     0183   515 ;  BE READ INTO THE XAB.

                                     0183   516 ;

                                     0183   517 ;--

                                     0183   518 XABDSPALL:

            54            0E     E2  0183   519 	BBSS	#XBC$C_DSPALL,R4,ERRIMX_BR1	; FLAG XAB SEEN, ERROR IF ALREADY ON

                          E0         0186       

            85            01     B0  0187   520 	MOVW	#1,(R5)+			; JUST READ 1ST BYTE

            85            03     B0  018A   521 	MOVW	#ATR$C_UCHAR,(R5)+		; USER CHAR. ATTR. CODE

            85         08 A3     9E  018D   522 	MOVAB	XAB$B_AOP(R3),(R5)+		; ADDR FOR READ

                                 05  0191   523 	RSB

RM0XAB          XAB PROCESSING ROUTINES                          21-AUG-1978 21:31:53   VAX-11 MACRO X0.3-11               Page  16

015             ALL XAB ROUTINES                                                                                                 (1)



                                     0192   525 ;++

                                     0192   526 ;

                                     0192   527 ;  ENTRY POINT FOR $OPEN PROCESSING

                                     0192   528 ;

                                     0192   529 ;--

                                     0192   530 XABOPNALL:

         08 A3         2C AA     90  0192   531 	MOVB	FWA$W_UCHAR(R10),XAB$B_AOP(R3)	; SET AOP BYTE FROM USER CHAR.

                                     0197   532 ;++

                                     0197   533 ;

                                     0197   534 ;  ENTRY POINT FOR 2ND PART OF $DISPLAY PROCESSING

                                     0197   535 ;

                                     0197   536 ;--

                                     0197   537 XABDSPALL1:

                                     0197   538 	ASSUME	FHD$V_CONTIG EQ XAB$V_CTG

                                     0197   539 	ASSUME	FHD$V_CONTIGB EQ XAB$V_CBT

         08 A3         5F 8F     8A  0197   540 	BICB2	#255 \ <XAB$M_CTG!XAB$M_CBT>,XAB$B_AOP(R3)	; CLEAR OTHER BITS

         14 A3         4E A9     B0  019C   541 	MOVW	IFB$W_DEQ(R9),XAB$W_DEQ(R3)	; SET DEQ

         16 A3         4A A9     90  01A1   542 	MOVB	IFB$B_BKS(R9),XAB$B_BKZ(R3)	; SET BKZ

         10 A3         40 A9     D0  01A6   543 SETALQ:	MOVL	IFB$L_HBK(R9),XAB$L_ALQ(R3)	; SET ALQ

                                 05  01AB   544 	RSB

RM0XAB          XAB PROCESSING ROUTINES                          21-AUG-1978 21:31:53   VAX-11 MACRO X0.3-11               Page  17

015             ALL XAB ROUTINES                                                                                                 (1)



                                     01AC   546 ;++

                                     01AC   547 ;  XABCREALL1 ROUTINE TO PROCESS ALLOCATION XAB FOR $CREATE

                                     01AC   548 ;

                                     01AC   549 ;  !!! \NOTE: NEEDS TO BE MODIFIED TO HANDLE INDEXED FILE ORG.\ !!!

                                     01AC   550 ;

                                     01AC   551 ;  ASSUMES THAT THIS IS AREA 0 (ALREADY CHECKED BY XABCREALL0).

                                     01AC   552 ;  USES THE ALLOCATION XAB PARAMETERS TO SET UP THE FIB,  WHOSE ADDRESS

                                     01AC   553 ;  MUST BE IN R6.

                                     01AC   554 ;

                                     01AC   555 ;--

                                     01AC   556 XABCREALL1:

            54            06     E2  01AC   557 	BBSS	#XBC$C_CREALL1,R4,50$		; BRANCH IF NOT AREA 0 XAB

                          25         01AF       

                          56     DD  01B0   558 	PUSHL	R6				; SAVE FIB ADDRESS

            51            56     D0  01B2   559 	MOVL	R6,R1				; COPY IT TO R1

            56            53     D0  01B5   560 	MOVL	R3,R6				; XAB ADDRESS TO R6

                          FE45'  30  01B8   561 	BSBW	RM$SET_XABALL			; SET UP FIB FROM XAB

            18            50     E9  01BB   562 	BLBC	R0,XABALL_ERR			; BRANCH IF BAD VALUES

            56            8E     D0  01BE   563 	MOVL	(SP)+,R6			; RESTORE FIB ADDR

         16 A6            01     E1  01C1   564 	BBC	#FIB$V_ALCONB,FIB$W_EXCTL(R6),10$ ; BRANCH IF NOT CBT

                          05         01C5       

         2C AA            05     E3  01C6   565 	BBCS	#FHD$V_CONTIGB,FWA$W_UCHAR(R10),50$ ; SET CBT FILE ATTR. & BRANCH

                          0A         01CA       

         16 A6            00     E1  01CB   566 10$:	BBC	#FIB$V_ALCON,FIB$W_EXCTL(R6),50$ ; BRANCH IF NOT CTG

                          05         01CF       

         2C AA         80 8F     88  01D0   567 	BISB2	#1@FHD$V_CONTIG,FWA$W_UCHAR(R10) ; SET CTG FILE ATTRIBUTE

                                 05  01D5   568 50$:	RSB

                                     01D6   569 ;

                                     01D6   570 XABALL_ERR:

                          FE3D'  31  01D6   571 	BRW	CLNSTK				; EXTENDED BRANCH TO GET OUT

                                     01D9   572 

                                     01D9   573 ;++

                                     01D9   574 ;

                                     01D9   575 ;  XABCREALL2 ROUTINE TO PROCESS FILLING IN OF ALQ FIELD WITH ACTUAL

                                     01D9   576 ;  FIRST EXTENT SIZE ON $CREATE.

                                     01D9   577 ;

                                     01D9   578 ;--

                                     01D9   579 XABCREALL2:

                          CB     11  01D9   580 	BRB	SETALQ

RM0XAB          XAB PROCESSING ROUTINES                          21-AUG-1978 21:31:53   VAX-11 MACRO X0.3-11               Page  18

015             RM$SETALLOC  -  ROUTINE TO HANDLE ALLOC XAB FOR                                                                  (1)



                                     01DB   582 	.SBTTL	RM$SETALLOC  -  ROUTINE TO HANDLE ALLOC XAB FOR SEQ. & REL. F.O.

                                     01DB   583 ;++

                                     01DB   584 ;  THIS ROUTINE HANDLES THE ALLOCATION XAB FOR THE SEQUENTIAL AND RELATIVE

                                     01DB   585 ;  FILE ORGANIZATIONS.

                                     01DB   586 ;

                                     01DB   587 ;  IF AN ALLOCATION XAB IS FOUND, IT IS CHECKED FOR DEFINING AREA 0 ONLY AND

                                     01DB   588 ;  IT IS USED TO PROVIDE THE ALQ, DEQ, AND BKS FIELDS, THESE BEING COPIED TO

                                     01DB   589 ;  THE FAB FOR LATER PROCESSING.  PLACEMENT INFORMATION IS PROCESSED WHEN THE

                                     01DB   590 ;  FILE CREATION IS ACTUALLY DONE.

                                     01DB   591 ;

                                     01DB   592 ;  THE ENTIRE XAB CHAIN IS CHECKED FOR VALIDITY.

                                     01DB   593 ;

                                     01DB   594 ;--

                        00 04 20 14  01DB   595 CREXAB0_ARGS:	.BYTE	XAB$C_ALL,XAB$C_ALLLEN,XBC$C_CREALL0,0

                                     01DF   596 ;

                                     01DF   597 RM$SETALLOC::

            5C         F9 AF     9E  01DF   598 	MOVAB	CREXAB0_ARGS,AP			; SET ARG LIST ADDR

                          FE40   30  01E3   599 	BSBW	XAB_SCAN			; GO SCAN XAB CHAIN

                                     01E6   600 ;

                                     01E6   601 ; USE FAB DEQ FIELD TO SET BOTH DEQ AND RUN-TIME DEQ FIELDS OF IFAB

                                     01E6   602 ;

         4E A9         14 A8     B0  01E6   603 	MOVW	FAB$W_DEQ(R8),IFB$W_DEQ(R9)

         3A A9         14 A8     B0  01EB   604 	MOVW	FAB$W_DEQ(R8),IFB$W_RTDEQ(R9)

                                 05  01F0   605 	RSB

                                     01F1   606 

                                     01F1   607 ;++

                                     01F1   608 ;  XABCREALL0 ROUTINE CALLED BY XAB_SCAN IF AN ALLOCATION XAB IS FOUND

                                     01F1   609 ;

                                     01F1   610 ;  VERIFY THIS IS THE ONLY ALLOCATION XAB AND THAT ITS AID = 0.

                                     01F1   611 ;  COPY THE ALQ, DEQ, AND BKZ FIELDS FROM THE XAB TO THE FAB.

                                     01F1   612 ;

                                     01F1   613 ;--

                                     01F1   614 XABCREALL0:

            54            04     E2  01F1   615 	BBSS	#XBC$C_CREALL0,R4,ERRIMX_BR	; BRANCH IF ALL. XAB ALREADY SEEN

                          2D         01F4       

                       17 A3     95  01F5   616 	TSTB	XAB$B_AID(R3)			; AID = 0?

                          2B     12  01F8   617 	BNEQ	ERRAID				; BRANCH IF NOT (ERROR)

         10 A8         10 A3     D0  01FA   618 	MOVL	XAB$L_ALQ(R3),FAB$L_ALQ(R8)	; COPY ALQ TO FAB

         14 A8         14 A3     B0  01FF   619 	MOVW	XAB$W_DEQ(R3),FAB$W_DEQ(R8)	; AND DEQ

            20         16 A3     91  0204   620 	CMPB	XAB$B_BKZ(R3),#32		; BKZ IN RANGE?

                          1E     1A  0208   621 	BGTRU	ERRBKZ				; BRANCH IF NOT

         3E A8         16 A3     90  020A   622 	MOVB	XAB$B_BKZ(R3),FAB$B_BKS(R8)	; AND BKS

                                     020F   623 	ASSUME	FAB$C_SEQ EQ 0

                       23 A9     95  020F   624 	TSTB	IFB$B_ORGCASE(R9)		; SEQUENTIAL FILE ORG?

                          05     13  0212   625 	BEQL	10$				; BRANCH IF YES

         4A A9         16 A3     90  0214   626 	MOVB	XAB$B_BKZ(R3),IFB$B_BKS(R9)	; SET IFAB BKS FROM XAB BKZ

            69            3E     E0  0219   627 10$:	BBS	#IFB$V_DAP,(R9),20$		; BRANCH IF NETWORK OPERATION

                          01         021C       

                                 05  021D   628 	RSB					; CONTINUE XAB SCAN FOR VALIDITY

            56            53     D0  021E   629 20$:	MOVL	R3,R6				; SAVE ADDRESS OF XAB

                                 05  0221   630 	RSB					;

                                     0222   631 ;

                                     0222   632 ERRIMX_BR:

                          FE6F   31  0222   633 	BRW	ERRIMX				; EXTENDED BRANCH TO HANDLE ERROR

                                     0225   634 ;

                                     0225   635 ;  HANDLE INVALID AID FIELD ERROR (NOT = 0)

                                     0225   636 ;

RM0XAB          XAB PROCESSING ROUTINES                          21-AUG-1978 21:31:53   VAX-11 MACRO X0.3-11               Page  19

015             RM$SETALLOC  -  ROUTINE TO HANDLE ALLOC XAB FOR                                                                  (1)



                                     0225   637 ERRAID:	$PSECT_BR	L$RMS0

                          FDF2'  31  0225       		BRW	L$RMS03

                                     0228       		.SAVE

                                 0000001A       		.PSECT	L$RMS0,GBL,NOWRT

                                     001A       L$RMS03:

                                     001A   638 RM$ERRAID::

                                     001A   639 	RMSERR	AID

            50       0000'8F     3C  001A       		MOVZWL	#<RMS$_AID&^XFFFF>,R0

                          F5     11  001F   640 	BRB	CLNSTK				; LOAD STV WITH XAB ADDR AND RETURN

                                     0021   641 	$PSECT_RESTORE

                                 00000228       		.RESTORE

                                     0228   642 ;

                                     0228   643 ;  HANDLE INVALID BKZ FIELD ERROR

                                     0228   644 ;

                                     0228   645 ERRBKZ:	$PSECT_BR	L$RMS0

                          FDF6'  31  0228       		BRW	L$RMS04

                                     022B       		.SAVE

                                 00000021       		.PSECT	L$RMS0,GBL,NOWRT

                                     0021       L$RMS04:

                                     0021   646 	RMSERR	BKZ

            50       0000'8F     3C  0021       		MOVZWL	#<RMS$_BKZ&^XFFFF>,R0

                          EE     11  0026   647 	BRB	CLNSTK

                                     0028   648 	$PSECT_RESTORE

                                 0000022B       		.RESTORE

                                     022B   649 

                                     022B   650 

                                     022B   651 	.END

RM0XAB          XAB PROCESSING ROUTINES                          21-AUG-1978 21:31:53   VAX-11 MACRO X0.3-11               Page  20

SYMBOL TABLE                                                                                                                     (1)



$$.PSECT_EP    = 00000005            ATR$W_TYPE       00000002            FAB$M_DEL      = 00000004            

$$RMSTEST      = 0000001A            BIT...         = 00000001            FAB$M_DFW      = 00000020            

$$RMS_PBUGCHK  = 00000010            CHKXAB           0000002C R     02   FAB$M_DLT      = 00008000            

$$RMS_TBUGCHK  = 00000008            CLNSTK           00000016 R     04   FAB$M_DMO      = 00001000            

$$RMS_UMODE    = 00000004            CREXAB0_ARGS     000001DB R     02   FAB$M_ESC      = 08000000            

ATR$C_ACLEVEL  = 00000018            ERRAID           00000225 R     02   FAB$M_EXE      = 00000080            

ATR$C_ALCONTROL= 0000000E            ERRBKZ           00000228 R     02   FAB$M_FTN      = 00000001            

ATR$C_ASCDATES = 0000000D            ERRCOD           00000091 R     02   FAB$M_GET      = 00000002            

ATR$C_ASCNAME  = 00000010            ERRIMX           00000094 R     02   FAB$M_INP      = 00080000            

ATR$C_BAKDATE  = 00000014            ERRIMX_BR        00000222 R     02   FAB$M_JNL      = 00400000            

ATR$C_BLOCKSIZE= 0000000B            ERRIMX_BR1       00000167 R     02   FAB$M_KFO      = 40000000            

ATR$C_CREDATE  = 00000011            ERRXAB           0000008E R     02   FAB$M_MSE      = 00000010            

ATR$C_DIRSEQ   = 0000001B            FAB$B_BID        00000000            FAB$M_MXV      = 00000002            

ATR$C_ENDLBLAST= 0000000F            FAB$B_BKS        0000003E            FAB$M_NAM      = 01000000            

ATR$C_EXPDAT   = 00000008            FAB$B_BLN        00000001            FAB$M_NEF      = 00000400            

ATR$C_EXPDATE  = 00000013            FAB$B_DNS        00000035            FAB$M_NFS      = 00010000            

ATR$C_FILNAM   = 00000005            FAB$B_FAC        00000016            FAB$M_NIL      = 00000020            

ATR$C_FILTYP   = 00000006            FAB$B_FNS        00000034            FAB$M_OFP      = 20000000            

ATR$C_FILVER   = 00000007            FAB$B_FSZ        0000003F            FAB$M_POS      = 00000100            

ATR$C_FPRO     = 00000016            FAB$B_ORG        0000001D            FAB$M_PPF      = 00040000            

ATR$C_HEADER   = 0000000A            FAB$B_RAT        0000001E            FAB$M_PPF_IND  = 00004000            

ATR$C_RECATTR  = 00000004            FAB$B_RFM        0000001F            FAB$M_PPF_RAT  = 00003FC0            

ATR$C_REVDATE  = 00000012            FAB$B_RTV        0000001C            FAB$M_PRN      = 00000004            

ATR$C_RPRO     = 00000017            FAB$B_SHR        00000017            FAB$M_PUT      = 00000001            

ATR$C_SEMASK   = 00000019            FAB$C_BID      = 00000003            FAB$M_RCK      = 00800000            

ATR$C_STATBLK  = 00000009            FAB$C_BLN        00000050            FAB$M_RWC      = 00000800            

ATR$C_UCHAR    = 00000003            FAB$C_FIX      = 00000001            FAB$M_RWO      = 00000080            

ATR$C_UIC      = 00000015            FAB$C_HSH      = 00000030            FAB$M_SCF      = 00004000            

ATR$C_UIC_RO   = 0000001A            FAB$C_IDX      = 00000020            FAB$M_SHRDEL   = 00000004            

ATR$C_USERLABEL= 0000000C            FAB$C_MAXRFM   = 00000003            FAB$M_SHRGET   = 00000002            

ATR$L_ADDR       00000004            FAB$C_REL      = 00000010            FAB$M_SHRPUT   = 00000001            

ATR$S_ACLEVEL  = 00000002            FAB$C_RFM_DFLT = 00000002            FAB$M_SHRUPD   = 00000008            

ATR$S_ALCONTROL= 0000000E            FAB$C_SEQ      = 00000000            FAB$M_SPL      = 00002000            

ATR$S_ASCDATES = 00000023            FAB$C_UDF      = 00000000            FAB$M_SQO      = 00000040            

ATR$S_ASCNAME  = 00000014            FAB$C_VAR      = 00000002            FAB$M_SUP      = 00000004            

ATR$S_BAKDATE  = 00000008            FAB$C_VFC      = 00000003            FAB$M_TEF      = 10000000            

ATR$S_BLOCKSIZE= 00000002            FAB$K_BLN        00000050            FAB$M_TMD      = 00000010            

ATR$S_CREDATE  = 00000008            FAB$L_ALQ        00000010            FAB$M_TMP      = 00000008            

ATR$S_DIRSEQ   = 00000002            FAB$L_CTX        00000018            FAB$M_TRN      = 00000010            

ATR$S_ENDLBLAST= 00000004            FAB$L_DEV        00000040            FAB$M_UFM      = 04000000            

ATR$S_EXPDAT   = 00000007            FAB$L_DNA        00000030            FAB$M_UFO      = 00020000            

ATR$S_EXPDATE  = 00000008            FAB$L_FNA        0000002C            FAB$M_UPD      = 00000008            

ATR$S_FILNAM   = 00000006            FAB$L_FOP        00000004            FAB$M_UPI      = 00000040            

ATR$S_FILTYP   = 00000002            FAB$L_JNL        00000020            FAB$M_WCK      = 00000200            

ATR$S_FILVER   = 00000002            FAB$L_MRN        00000038            FAB$S_ORG      = 00000004            

ATR$S_FPRO     = 00000002            FAB$L_NAM        00000028            FAB$S_PPF_RAT  = 00000008            

ATR$S_HEADER   = 00000200            FAB$L_SDC        00000044            FAB$V_BIO      = 00000005            

ATR$S_RECATTR  = 00000020            FAB$L_STS        00000008            FAB$V_BLK      = 00000003            

ATR$S_REVDATE  = 00000008            FAB$L_STV        0000000C            FAB$V_BRO      = 00000006            

ATR$S_RPRO     = 00000002            FAB$L_XAB        00000024            FAB$V_CBT      = 00000015            

ATR$S_SEMASK   = 00000008            FAB$M_BIO      = 00000020            FAB$V_CIF      = 00000019            

ATR$S_STATBLK  = 0000000A            FAB$M_BLK      = 00000008            FAB$V_CR       = 00000001            

ATR$S_UCHAR    = 00000001            FAB$M_BRO      = 00000040            FAB$V_CTG      = 00000014            

ATR$S_UIC      = 00000004            FAB$M_CBT      = 00200000            FAB$V_DEL      = 00000002            

ATR$S_UIC_RO   = 00000004            FAB$M_CIF      = 02000000            FAB$V_DFW      = 00000005            

ATR$S_USERLABEL= 00000050            FAB$M_CR       = 00000002            FAB$V_DLT      = 0000000F            

ATR$W_SIZE       00000000            FAB$M_CTG      = 00100000            FAB$V_DMO      = 0000000C            

RM0XAB          XAB PROCESSING ROUTINES                          21-AUG-1978 21:31:53   VAX-11 MACRO X0.3-11               Page  21

SYMBOL TABLE                                                                                                                     (1)



FAB$V_ESC      = 0000001B            FHD$S_WORLDPRO = 00000004            FIB$L_WCC        00000010            

FAB$V_EXE      = 00000007            FHD$V_BADBLOCK = 00000006            FIB$M_ALCON    = 00000001            

FAB$V_FTN      = 00000000            FHD$V_CONTIG   = 00000007            FIB$M_ALCONB   = 00000002            

FAB$V_GET      = 00000001            FHD$V_CONTIGB  = 00000005            FIB$M_ALDEF    = 00000008            

FAB$V_INP      = 00000013            FHD$V_GROUPPRO = 00000008            FIB$M_ALLNAM   = 00000020            

FAB$V_JNL      = 00000016            FHD$V_LOCKED   = 00000006            FIB$M_ALLTYP   = 00000010            

FAB$V_KFO      = 0000001E            FHD$V_MARKDEL  = 00000007            FIB$M_ALLVER   = 00000008            

FAB$V_MSE      = 00000004            FHD$V_OWNPRO   = 00000004            FIB$M_CURPOS   = 00000010            

FAB$V_MXV      = 00000001            FHD$V_READCHECK= 00000003            FIB$M_DLOCK    = 00000002            

FAB$V_NAM      = 00000018            FHD$V_SYSPRO   = 00000000            FIB$M_EXACT    = 00000001            

FAB$V_NEF      = 0000000A            FHD$V_WORLDPRO = 0000000C            FIB$M_EXECUTE  = 00010000            

FAB$V_NFS      = 00000010            FHD$V_WRITCHECK= 00000004            FIB$M_EXTEND   = 00000080            

FAB$V_NIL      = 00000005            FHD$W_CHECKSUM   000001FE            FIB$M_FILCON   = 00000004            

FAB$V_OFP      = 0000001D            FHD$W_FID        00000002            FIB$M_FINDFID  = 00000800            

FAB$V_ORG      = 00000004            FHD$W_FID_NUM    00000002            FIB$M_HIGHVER  = 00008000            

FAB$V_POS      = 00000008            FHD$W_FID_SEQ    00000004            FIB$M_LOWVER   = 00004000            

FAB$V_PPF      = 00000012            FHD$W_FILECHAR   0000000C            FIB$M_MARKBAD  = 00000400            

FAB$V_PPF_IND  = 0000000E            FHD$W_FILEOWNER  00000008            FIB$M_NEWVER   = 00000200            

FAB$V_PPF_RAT  = 00000006            FHD$W_FILEPROT   0000000A            FIB$M_NOHDREXT = 00000200            

FAB$V_PRN      = 00000002            FHD$W_RECATTR    0000000E            FIB$M_NOREAD   = 00000400            

FAB$V_PUT      = 00000000            FHD$W_STRUCLEV   00000006            FIB$M_NOTRUNC  = 00000800            

FAB$V_RCK      = 00000017            FIB$B_ALALIGN    00000021            FIB$M_NOWRITE  = 00000001            

FAB$V_RWC      = 0000000B            FIB$B_ALOPTS     00000020            FIB$M_ONCYL    = 00000002            

FAB$V_RWO      = 00000007            FIB$B_DID_NMX    0000000F            FIB$M_PRSRV_ATR= 00020000            

FAB$V_SCF      = 0000000E            FIB$B_DID_RVN    0000000E            FIB$M_READCK   = 00000200            

FAB$V_SHRDEL   = 00000002            FIB$B_FID_NMX    00000009            FIB$M_REWIND   = 00000008            

FAB$V_SHRGET   = 00000001            FIB$B_FID_RVN    00000008            FIB$M_SEQONLY  = 00000040            

FAB$V_SHRPUT   = 00000000            FIB$B_LOC_NMX    00000027            FIB$M_SPOOL    = 00000010            

FAB$V_SHRUPD   = 00000003            FIB$B_LOC_RVN    00000026            FIB$M_SUPERSEDE= 00000400            

FAB$V_SPL      = 0000000D            FIB$B_WSIZE      00000003            FIB$M_TRUNC    = 00000100            

FAB$V_SQO      = 00000006            FIB$C_ACCDATA    0000000A            FIB$M_UPDATE   = 00000040            

FAB$V_SUP      = 00000002            FIB$C_ALCDATA    0000002C            FIB$M_WILD     = 00000100            

FAB$V_TEF      = 0000001C            FIB$C_CYL      = 00000001            FIB$M_WRITE    = 00000100            

FAB$V_TMD      = 00000004            FIB$C_DIRDATA    00000016            FIB$M_WRITECK  = 00000020            

FAB$V_TMP      = 00000003            FIB$C_EXTDATA    00000020            FIB$V_ALCON    = 00000000            

FAB$V_TRN      = 00000004            FIB$C_ILLEGAL  = 00000005            FIB$V_ALCONB   = 00000001            

FAB$V_UFM      = 0000001A            FIB$C_LBN      = 00000002            FIB$V_ALDEF    = 00000003            

FAB$V_UFO      = 00000011            FIB$C_LENGTH     0000002C            FIB$V_ALLNAM   = 00000005            

FAB$V_UPD      = 00000003            FIB$C_MTALEN     0000001C            FIB$V_ALLTYP   = 00000004            

FAB$V_UPI      = 00000006            FIB$C_NEXTVOL  = 00000003            FIB$V_ALLVER   = 00000003            

FAB$V_WCK      = 00000009            FIB$C_POSEND   = 00000002            FIB$V_CURPOS   = 00000004            

FAB$W_BLS        0000003C            FIB$C_REWINDFIL= 00000006            FIB$V_DLOCK    = 00000001            

FAB$W_DEQ        00000014            FIB$C_REWINDVOL= 00000001            FIB$V_EXACT    = 00000000            

FAB$W_IFI        00000002            FIB$C_RFI      = 00000004            FIB$V_EXECUTE  = 00000010            

FAB$W_MRS        00000036            FIB$C_SPACE    = 00000004            FIB$V_EXTEND   = 00000007            

FHD$B_IDOFFSET   00000000            FIB$C_VBN      = 00000003            FIB$V_FILCON   = 00000002            

FHD$B_MPOFFSET   00000001            FIB$K_ACCDATA    0000000A            FIB$V_FINDFID  = 0000000B            

FHD$B_SYSCHAR    0000000D            FIB$K_ALCDATA    0000002C            FIB$V_HIGHVER  = 0000000F            

FHD$B_UICGROUP   00000009            FIB$K_DIRDATA    00000016            FIB$V_LOWVER   = 0000000E            

FHD$B_UICMEMBER  00000008            FIB$K_EXTDATA    00000020            FIB$V_MARKBAD  = 0000000A            

FHD$B_USERCHAR   0000000C            FIB$K_LENGTH     0000002C            FIB$V_NEWVER   = 00000009            

FHD$C_LENGTH     0000002E            FIB$K_MTALEN     0000001C            FIB$V_NOHDREXT = 00000009            

FHD$C_LEVEL1   = 00000101            FIB$L_ACCTL      00000000            FIB$V_NOREAD   = 0000000A            

FHD$K_LENGTH     0000002E            FIB$L_CNTRLVAL   00000018            FIB$V_NOTRUNC  = 0000000B            

FHD$S_GROUPPRO = 00000004            FIB$L_EXSZ       00000018            FIB$V_NOWRITE  = 00000000            

FHD$S_OWNPRO   = 00000004            FIB$L_EXVBN      0000001C            FIB$V_ONCYL    = 00000001            

FHD$S_SYSPRO   = 00000004            FIB$L_LOC_ADDR   00000028            FIB$V_PRSRV_ATR= 00000011            

RM0XAB          XAB PROCESSING ROUTINES                          21-AUG-1978 21:31:53   VAX-11 MACRO X0.3-11               Page  22

SYMBOL TABLE                                                                                                                     (1)



FIB$V_READCK   = 00000009            FWA$C_VERBUFSIZ= 00000006            FWA$V_DEVICE   = 0000000F            

FIB$V_REWIND   = 00000003            FWA$C_XLTBUFSIZ= 0000003F            FWA$V_DIR      = 0000000E            

FIB$V_SEQONLY  = 00000006            FWA$L_BUFFLG     00000014            FWA$V_DIR1     = 00000020            

FIB$V_SPOOL    = 00000004            FWA$L_DEVNODADR  00000020            FWA$V_DIR2     = 00000021            

FIB$V_SUPERSEDE= 0000000A            FWA$L_ESCSTRING  00000008            FWA$V_DIR_LVLS = 0000001D            

FIB$V_TRUNC    = 00000008            FWA$L_HBK        00000098            FWA$V_DUPOK    = 00000000            

FIB$V_UPDATE   = 00000006            FWA$L_LOOKUP     0000001C            FWA$V_EXP_DEV  = 00000017            

FIB$V_WILD     = 00000008            FWA$L_SBN        00000094            FWA$V_EXP_DIR  = 00000016            

FIB$V_WRITE    = 00000008            FWA$L_UIC        0000001C            FWA$V_EXP_NAME = 00000012            

FIB$V_WRITECK  = 00000005            FWA$L_XLTCNT     0000002C            FWA$V_EXP_TYPE = 00000011            

FIB$W_ALLOC      00000022            FWA$L_XLTSIZ     00000018            FWA$V_EXP_VER  = 00000010            

FIB$W_CNTRLFUNC  00000016            FWA$M_DEVICE   = 00008000            FWA$V_FNA_PASS = 00000004            

FIB$W_DID        0000000A            FWA$M_DIR      = 00004000            FWA$V_GRPMBR   = 0000001B            

FIB$W_DID_NUM    0000000A            FWA$M_DUPOK    = 00000001            FWA$V_LOGNAME  = 00000030            

FIB$W_DID_RVN    0000000E            FWA$M_EXP_DEV  = 00800000            FWA$V_NAME     = 0000000D            

FIB$W_DID_SEQ    0000000C            FWA$M_EXP_DIR  = 00400000            FWA$V_NAMEFLG  = 00000001            

FIB$W_EXCTL      00000016            FWA$M_EXP_NAME = 00040000            FWA$V_NAM_DVI  = 00000005            

FIB$W_FID        00000004            FWA$M_EXP_TYPE = 00020000            FWA$V_NETSTR   = 00000032            

FIB$W_FID_NUM    00000004            FWA$M_EXP_VER  = 00010000            FWA$V_NODE     = 00000019            

FIB$W_FID_RVN    00000008            FWA$M_FNA_PASS = 00000010            FWA$V_OBJTYPE  = 00000031            

FIB$W_FID_SEQ    00000006            FWA$M_NAME     = 00002000            FWA$V_QUOTED   = 0000001A            

FIB$W_LOC_FID    00000022            FWA$M_NAMEFLG  = 00000002            FWA$V_RLF_PASS = 00000003            

FIB$W_LOC_NUM    00000022            FWA$M_NAM_DVI  = 00000020            FWA$V_TYPE     = 0000000C            

FIB$W_LOC_RVN    00000026            FWA$M_RLF_PASS = 00000008            FWA$V_TYPEFLG  = 00000002            

FIB$W_LOC_SEQ    00000024            FWA$M_TYPE     = 00001000            FWA$V_VERSION  = 0000000B            

FIB$W_NMCTL      00000014            FWA$M_TYPEFLG  = 00000004            FWA$V_WC_NAME  = 00000015            

FOP            = 00000020            FWA$M_VERSION  = 00000800            FWA$V_WC_TYPE  = 00000014            

FWA$B_DIRFLGS    00000004            FWA$Q_DEVICE     0000003C            FWA$V_WC_VER   = 00000013            

FWA$B_DIRLEN     00000030            FWA$Q_DIR        00000024            FWA$V_WILDCARD = 00000018            

FWA$B_DIRTERM    00000007            FWA$Q_DIR1       00000044            FWA$V_WILD_DIR = 0000001C            

FWA$B_DIRWCFLGS  00000005            FWA$Q_DIR2       0000004C            FWA$V_WILD_GRP = 00000028            

FWA$B_ESCFLG     00000008            FWA$Q_FIB        0000000C            FWA$V_WILD_MBR = 00000029            

FWA$B_ESCTYP     00000009            FWA$Q_FLAGS      00000000            FWA$V_WILD_SFD1= 00000029            

FWA$B_FLDFLGS    00000001            FWA$Q_LOGNAME    0000001C            FWA$V_WILD_UFD = 00000028            

FWA$B_LNFLG      00000006            FWA$Q_NAME       00000084            FWA$W_ESCIFI     0000000A            

FWA$B_PARSEFLGS  00000003            FWA$Q_NODE       00000034            FWA$W_FNAMSIZ    00000018            

FWA$B_PASSFLGS   00000000            FWA$Q_QUOTED     0000009C            FWA$W_PRO        00000020            

FWA$B_UNDERLINE  00000154            FWA$Q_RNS        0000008C            FWA$W_UCHAR      0000002C            

FWA$B_WILDFLGS   00000002            FWA$Q_STATBLK    00000094            GBL...         = 00000000            

FWA$B_XLTMODE    0000000A            FWA$Q_TYPE       0000008C            GOTXAB           00000051 R     02   

FWA$B_XLTTBL     0000000B            FWA$Q_VERSION    00000094            IFB$B_AMAX       00000059            

FWA$C_ALL      = 000000F8            FWA$Q_XLTBUF1    0000000C            IFB$B_AVBN       00000058            

FWA$C_DEVBUFSIZ= 0000000F            FWA$Q_XLTBUF2    00000024            IFB$B_BID        00000008            

FWA$C_DIRBUFSIZ= 00000009            FWA$S_DIR_LVLS = 00000003            IFB$B_BKS        0000004A            

FWA$C_FIBLEN   = 0000002C            FWA$T_ATR_LIST   00000164            IFB$B_BLN        00000009            

FWA$C_MAXDEVICE= 0000000F            FWA$T_DEVICEBUF  00000155            IFB$B_EFN        0000000B            

FWA$C_MAXDIRLEN= 0000003C            FWA$T_DIB        00000174            IFB$B_EXTRABUF   0000005D            

FWA$C_MAXNAME  = 00000009            FWA$T_DIR1BUF    000000D0            IFB$B_FAC        00000022            

FWA$C_MAXNODE  = 00000028            FWA$T_DIR2BUF    000000D9            IFB$B_FSZ        0000004B            

FWA$C_MAXQUOTED= 0000007F            FWA$T_FIBBUF     000000A4            IFB$B_KBUFSZ     0000005C            

FWA$C_MAXSUBDIR= 00000007            FWA$T_NAMEBUF    00000118            IFB$B_MODE       0000000A            

FWA$C_MAXTYPE  = 00000003            FWA$T_NODEBUF    0000012C            IFB$B_NUM_KEYS   0000005A            

FWA$C_MAXVER   = 00000006            FWA$T_TYPEBUF    00000122            IFB$B_ORGCASE    00000023            

FWA$C_NAMBUFSIZ= 0000000A            FWA$T_VERBUF     00000126            IFB$B_RAT        0000003D            

FWA$C_NODBUFSIZ= 00000028            FWA$T_XLTBUFF1   00000164            IFB$B_RFMORG     0000003C            

FWA$C_RNSBUFSIZ= 00000014            FWA$T_XLTBUFF2   000001A4            IFB$B_UBUFSZ     0000005B            

FWA$C_TYPBUFSIZ= 00000004            FWA$V_CUR_VER  = 00000006            IFB$C_BID      = 0000000B            

RM0XAB          XAB PROCESSING ROUTINES                          21-AUG-1978 21:31:53   VAX-11 MACRO X0.3-11               Page  23

SYMBOL TABLE                                                                                                                     (1)



IFB$C_BLN        00000060            IFB$V_DAP      = 0000003E            RM$OPEN_XAB      00000022 RG    02   

IFB$C_BLN_IDX    00000060            IFB$V_DAP_OPEN = 0000003D            RM$OPEN_XAB1     0000001C RG    02   

IFB$C_BLN_REL    00000060            IFB$V_DEL      = 00000002            RM$SETALLOC      000001DF RG    02   

IFB$C_BLN_SEQ    0000005C            IFB$V_DFW      = 0000002C            RM$SET_XABALL    ********   X   02   

IFB$C_DIR      = 00000003            IFB$V_DLT      = 0000002B            RM$XAB_SCAN      00000026 RG    02   

IFB$C_FHAEND     00000050            IFB$V_DMO      = 00000028            RMS$_AID         ********   X   04   

IFB$C_IDX      = 00000002            IFB$V_EOF      = 00000021            RMS$_BKZ         ********   X   04   

IFB$C_MAXORG   = 00000002            IFB$V_EXE      = 00000007            RMS$_COD         ********   X   04   

IFB$C_REL      = 00000001            IFB$V_GET      = 00000001            RMS$_IMX         ********   X   04   

IFB$C_SEQ      = 00000000            IFB$V_MSE      = 00000031            RMS$_XAB         ********   X   04   

IFB$K_BLN        00000060            IFB$V_NORECLK  = 00000033            SETALQ           000001A6 R     02   

IFB$K_BLN_IDX    00000060            IFB$V_NSP      = 0000003F            SETSTV           00000005 R     04   

IFB$K_BLN_REL    00000060            IFB$V_NWA      = 0000003C            SUCXIT           0000008A R     02   

IFB$K_BLN_SEQ    0000005C            IFB$V_ORG      = 00000004            UIC              00000134 R     02   

IFB$K_FHAEND     00000050            IFB$V_PPF_IMAGE= 00000022            XAB$B_AID        00000017            

IFB$L_ARGLST     00000018            IFB$V_PPF_INPUT= 0000002E            XAB$B_ALN        00000009            

IFB$L_ASBADDR    00000014            IFB$V_PUT      = 00000000            XAB$B_AOP        00000008            

IFB$L_AS_DEV     00000054            IFB$V_RFM      = 00000000            XAB$B_ATR        00000009            

IFB$L_BDB_BLNK   00000034            IFB$V_RWC      = 00000027            XAB$B_BKZ        00000016            

IFB$L_BDB_FLNK   00000030            IFB$V_RW_ATTR  = 00000034            XAB$B_BLN        00000001            

IFB$L_BKPBITS    00000004            IFB$V_SCF      = 0000002A            XAB$B_COD        00000000            

IFB$L_BWB        0000000C            IFB$V_SPL      = 00000029            XAB$B_DAN        0000000A            

IFB$L_DVBN       00000058            IFB$V_SQO      = 0000002D            XAB$B_DBS        0000000D            

IFB$L_EBK        00000044            IFB$V_TEF      = 00000036            XAB$B_DTP        00000013            

IFB$L_FRB_PTR    00000028            IFB$V_TMP      = 00000035            XAB$B_FLAGS      00000012            

IFB$L_FWA_BDB    00000050            IFB$V_TRN      = 00000004            XAB$B_FLG        00000012            

IFB$L_HBK        00000040            IFB$V_UPD      = 00000003            XAB$B_HSZ        00000017            

IFB$L_IDX_PTR    00000054            IFB$V_WRTACC   = 00000030            XAB$B_IAN        00000008            

IFB$L_IOS        0000000C            IFB$W_ASDEVBSIZ  0000005A            XAB$B_IBS        0000000C            

IFB$L_IOS4       00000010            IFB$W_BKS_BYTES  0000005C            XAB$B_LAN        00000009            

IFB$L_IRAB_LNK   0000001C            IFB$W_BKS_RECS   0000005E            XAB$B_LVL        0000000B            

IFB$L_LAST_FAB   00000024            IFB$W_CHNL       00000020            XAB$B_NOA        00000008            

IFB$L_LOCK_BDB   00000050            IFB$W_DEQ        0000004E            XAB$B_NOK        00000009            

IFB$L_MRN        00000054            IFB$W_DEVBUFSIZ  00000038            XAB$B_NSG        00000014            

IFB$L_NRP_LNK    00000050            IFB$W_EBK0       00000044            XAB$B_NUL        00000015            

IFB$L_NWA_PTR    00000028            IFB$W_EBK2       00000046            XAB$B_REF        00000017            

IFB$L_PRIM_DEV   00000000            IFB$W_FFB        00000048            XAB$B_RFO        00000008            

IFB$L_RLB_LNK    0000002C            IFB$W_IOS2       0000000E            XAB$B_SIZ        0000002E            

IFB$L_RNS_LEN    00000050            IFB$W_LRL        0000003E            XAB$B_SIZ0       0000002E            

IFB$M_BIO      = 00000020            IFB$W_MRS        0000004C            XAB$B_SIZ1       0000002F            

IFB$M_BRO      = 00000040            IFB$W_RTDEQ      0000003A            XAB$B_SIZ2       00000030            

IFB$M_DEL      = 00000004            L$RMS00          00000000 R     04   XAB$B_SIZ3       00000031            

IFB$M_EXE      = 00000080            L$RMS01          0000000A R     04   XAB$B_SIZ4       00000032            

IFB$M_GET      = 00000002            L$RMS02          00000011 R     04   XAB$B_SIZ5       00000033            

IFB$M_PUT      = 00000001            L$RMS03          0000001A R     04   XAB$B_SIZ6       00000034            

IFB$M_TRN      = 00000010            L$RMS04          00000021 R     04   XAB$B_SIZ7       00000035            

IFB$M_UPD      = 00000008            NXTXAB           0000004B R     02   XAB$B_TKS        00000016            

IFB$S_ORG      = 00000004            OPNXAB1_ARGS     00000015 R     02   XAB$C_ALL      = 00000014            

IFB$S_RFM      = 00000004            OPNXAB1_ARGS_NT  00000018 RG    02   XAB$C_ALLLEN     00000020            

IFB$V_ACCESSED = 00000025            OPNXAB_ARGS      00000008 R     02   XAB$C_ANY      = 00000000            

IFB$V_ANSI_D   = 00000026            PIO$GW_DFPROT    ********   X   02   XAB$C_BN2      = 00000002            

IFB$V_ASYNC    = 00000023            PRO              00000129 R     02   XAB$C_BN4      = 00000004            

IFB$V_ASYNCWAIT= 00000024            PRO_DEFAULT      00000156 R     02   XAB$C_CYL      = 00000001            

IFB$V_BIO      = 00000005            REV_DATE_COUNT   000000FE R     02   XAB$C_DAT      = 00000012            

IFB$V_BRO      = 00000006            RM$ERRAID        0000001A RG    04   XAB$C_DATLEN     00000024            

IFB$V_BUSY     = 00000020            RM$ERRIMX        00000011 RG    04   XAB$C_FHC      = 0000001D            

IFB$V_CREATE   = 00000032            RM$EXTEND_XAB    ********   X   02   XAB$C_FHCLEN     0000002C            

RM0XAB          XAB PROCESSING ROUTINES                          21-AUG-1978 21:31:53   VAX-11 MACRO X0.3-11               Page  24

SYMBOL TABLE                                                                                                                     (1)



XAB$C_IN2      = 00000001            XAB$M_ONC      = 00000002            XAB$W_RFI2       0000001A            

XAB$C_IN4      = 00000003            XAB$M_PRG      = 00000004            XAB$W_RFI4       0000001C            

XAB$C_KEY      = 00000015            XAB$Q_CDT        00000014            XAB$W_RVN        00000008            

XAB$C_KEYLEN     00000040            XAB$Q_EDT        0000001C            XAB$W_VOL        0000000A            

XAB$C_LBN      = 00000002            XAB$Q_RDT        0000000C            XABALL_ERR       000001D6 R     02   

XAB$C_PAC      = 00000005            XAB$S_GRP      = 00000004            XABCLSPRO        0000016A R     02   

XAB$C_PRO      = 00000013            XAB$S_OWN      = 00000004            XABCLSRDT        00000113 R     02   

XAB$C_PROLEN     00000010            XAB$S_SYS      = 00000004            XABCREALL0       000001F1 R     02   

XAB$C_RDT      = 0000001E            XAB$S_WLD      = 00000004            XABCREALL1       000001AC R     02   

XAB$C_RDTLEN     00000014            XAB$V_CBT      = 00000005            XABCREALL2       000001D9 R     02   

XAB$C_RFI      = 00000004            XAB$V_CHG      = 00000001            XABCREPRO        0000013F R     02   

XAB$C_STG      = 00000000            XAB$V_CTG      = 00000007            XABDSPALL        00000183 R     02   

XAB$C_SUM      = 00000014            XAB$V_DCT      = 00000005            XABDSPALL1       00000197 R     02   

XAB$C_SUMLEN     0000000C            XAB$V_DSABL_AST= 00000000            XABDSPFHC        00000097 R     02   

XAB$C_TRM      = 0000001F            XAB$V_DUP      = 00000000            XABDSPFHC1       000000C1 R     02   

XAB$C_TRMLEN     00000018            XAB$V_GRP      = 00000008            XABOPNALL        00000192 R     02   

XAB$C_VBN      = 00000003            XAB$V_HRD      = 00000000            XABOPNDAT        000000E0 R     02   

XAB$K_ALLLEN     00000020            XAB$V_INI      = 00000004            XABOPNFHC        000000A1 R     02   

XAB$K_DATLEN     00000024            XAB$V_NODEL    = 00000003            XABOPNFHC1       000000BB R     02   

XAB$K_FHCLEN     0000002C            XAB$V_NOEXE    = 00000002            XABOPNPRO        00000123 R     02   

XAB$K_KEYLEN     00000040            XAB$V_NOREAD   = 00000000            XABOPNRDT        000000FA R     02   

XAB$K_PROLEN     00000010            XAB$V_NOWRITE  = 00000001            XABTBL           00000000 R     02   

XAB$K_RDTLEN     00000014            XAB$V_NRF      = 00000001            XABTBLLEN      = 00000008            

XAB$K_SUMLEN     0000000C            XAB$V_NUL      = 00000002            XAB_SCAN         00000026 R     02   

XAB$K_TRMLEN     00000018            XAB$V_ONC      = 00000001            XBC$C_CLSPRO   = 0000000A  G         

XAB$L_ALQ        00000010            XAB$V_OWN      = 00000004            XBC$C_CLSRDT   = 0000000B  G         

XAB$L_AST_ADDR   00000008            XAB$V_PRG      = 00000002            XBC$C_CREALL0  = 00000004  G         

XAB$L_AST_PARM   0000000C            XAB$V_SYS      = 00000000            XBC$C_CREALL1  = 00000006  G         

XAB$L_CDT0       00000014            XAB$V_WLD      = 0000000C            XBC$C_CREALL2  = 00000010  G         

XAB$L_CDT4       00000018            XAB$W_DEQ        00000014            XBC$C_CREPRO   = 00000007  G         

XAB$L_DVB        0000003C            XAB$W_DFL        0000001C            XBC$C_DSPALL   = 0000000E  G         

XAB$L_EBK        00000010            XAB$W_DXQ        0000001A            XBC$C_DSPALL1  = 0000000F  G         

XAB$L_EDT0       0000001C            XAB$W_EBK0       00000010            XBC$C_DSPFHC   = 0000000C  G         

XAB$L_EDT4       00000020            XAB$W_EBK2       00000012            XBC$C_DSPFHC1  = 0000000D  G         

XAB$L_HBK        0000000C            XAB$W_FFB        00000014            XBC$C_EXTALL   = 00000005  G         

XAB$L_KNM        00000038            XAB$W_GRP        0000000E            XBC$C_OPNALL   = 00000009  G         

XAB$L_LOC        0000000C            XAB$W_HBK0       0000000C            XBC$C_OPNDAT   = 00000003  G         

XAB$L_NXT        00000004            XAB$W_HBK2       0000000E            XBC$C_OPNFHC   = 00000000  G         

XAB$L_RDT0       0000000C            XAB$W_IFL        0000001A            XBC$C_OPNFHC1  = 00000001  G         

XAB$L_RDT4       00000010            XAB$W_LRL        0000000A            XBC$C_OPNPRO   = 00000002  G         

XAB$L_RVB        0000000E            XAB$W_MBM        0000000C            XBC$C_OPNRDT   = 00000008  G         

XAB$L_SBN        00000028            XAB$W_MBX_CHAN   00000010            

XAB$L_UIC        0000000C            XAB$W_MRL        00000018            

XAB$M_CBT      = 00000020            XAB$W_MRZ        00000018            

XAB$M_CHG      = 00000002            XAB$W_POS        0000001E            

XAB$M_CTG      = 00000080            XAB$W_POS0       0000001E            

XAB$M_DCT      = 00000020            XAB$W_POS1       00000020            

XAB$M_DSABL_AST= 00000001            XAB$W_POS2       00000022            

XAB$M_DUP      = 00000001            XAB$W_POS3       00000024            

XAB$M_HRD      = 00000001            XAB$W_POS4       00000026            

XAB$M_INI      = 00000010            XAB$W_POS5       00000028            

XAB$M_NODEL    = 00000008            XAB$W_POS6       0000002A            

XAB$M_NOEXE    = 00000004            XAB$W_POS7       0000002C            

XAB$M_NOREAD   = 00000001            XAB$W_PRO        00000008            

XAB$M_NOWRITE  = 00000002            XAB$W_PVN        0000000A            

XAB$M_NRF      = 00000002            XAB$W_RFI        00000018            

XAB$M_NUL      = 00000004            XAB$W_RFI0       00000018            

RM0XAB          XAB PROCESSING ROUTINES                          21-AUG-1978 21:31:53   VAX-11 MACRO X0.3-11               Page  25

PROGRAM SECTION SYNOPSIS                                                                                                         (1)







PROGRAM SECTION SYNOPSIS



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

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

F$RMSOPEN0       0000022B      02     NOPIC   USR   CON   REL   GBL NOSHR   EXE   RD  NOWRT BYTE  

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

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





THERE WERE NO ERRORS OR WARNINGS.

2540. BYTES LEFT IN FREE MEMORY POOL.

3906. BYTES OF RECLAIMED MEMORY.

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

55 MLB DIR RDS - 1281 GETS TO DEFINE 34 MACROS. 97 INTER. FILE WRITES. 

