RSXPARSE        - PARSE DIRECTIVE                                22-AUG-1978 05:10:10   VAX-11 MACRO X0.3-11               Page   0

TABLE OF CONTENTS   



   (2)      89  RSX$PARS - RSX11M PARSE DIRECTIVE

   (4)     503  REPLACE_DEVICE - REPLACE DEVICE NAME ON STRING

   (5)     590  RSX$BLDFNAME - BUILD FILENAME STRING FROM FNB

   (6)     634  RSX$RETFNAME - RETURN FILENAME FROM ASCII TO FN

   (7)     688  RSX$BLDASCDEV - BUILD ASCII DEVICE NAME

   (8)     728  RSX$BLDPHYDEV - BUILD PHYSICAL DEVICE NAME

   (9)     771  RSX$PARSEDEV - PARSE DEVICE NAME

RSXPARSE        - PARSE DIRECTIVE                                22-AUG-1978 05:10:10   VAX-11 MACRO X0.3-11               Page   1

06.0                                                                                                                             (1)



                                     0000     1 	.TITLE	RSXPARSE - PARSE DIRECTIVE

                                     0000     2 	.IDENT	/06.0/

                                     0000     3 ; COPYRIGHT (C) 1978

                                     0000     4 ; DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS.

                                     0000     5 ;

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

                                     0000     7 ; SINGLE COMPUTER SYSTEM AND MAY BE  COPIED ONLY WITH  THE INCLU-

                                     0000     8 ; SION OF  THE  ABOVE  COPYRIGHT NOTICE.  THIS SOFTWARE,  OR  ANY

                                     0000     9 ; OTHER COPIES THEREOF, MAY NOT BE  PROVIDED  OR  OTHERWISE  MADE

                                     0000    10 ; AVAILABLE TO ANY OTHER PERSON EXCEPT  FOR  USE  ON  SUCH SYSTEM

                                     0000    11 ; AND TO  ONE WHO AGREES  TO  THESE LICENSE  TERMS.  TITLE TO AND

                                     0000    12 ; OWNERSHIP OF THE SOFTWARE SHALL AT ALL TIMES REMAIN IN DEC.

                                     0000    13 ;

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

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

                                     0000    16 ; EQUIPMENT CORPORATION.

                                     0000    17 ;

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

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

                                     0000    20 ;++

                                     0000    21 ; FACILITY:

                                     0000    22 ;

                                     0000    23 ;	VAX/VMS RSX AME.

                                     0000    24 ;

                                     0000    25 ; ABSTRACT:

                                     0000    26 ;

                                     0000    27 ;	RSX11M PARSE DIRECTIVE.

                                     0000    28 ;

                                     0000    29 ; AUTHOR:

                                     0000    30 ;

                                     0000    31 ;	R.HEINEN 29-JUL-77

                                     0000    32 ;--

                                     0000    33 ;

                                     0000    34 ; EXTERNAL SYMBOLS

                                     0000    35 ;

                                     0000    36 	$RSXDEF				; DEFINE AME'S SYMBOLS

                                     0000    37 	FCSBT$				; DEFINE FCS BITS

                                     0000    38 	NBOFF$	DEF$L			; DEFINE NAME BLOCK

                                     0000    39 	$FABDEF				; DEFINE FAB

                                     0000    40 	$NAMDEF				; DEFINE NAME BLOCK RMS-32

                                     0000    41 	IOERR$				; DEFINE I/O ERRORS

                                     0000    42 ;

                                     0000    43 ; LOCAL MACRO

                                     0000    44 ;

                                     0000    45 	.MACRO	RMSERR	A,B

                                     0000    46 	.BYTE	A

                                     0000    47 	.WORD	<B>&^X0FFFF

                                     0000    48 	.ENDM

                                     0000    49 ;

                                     0000    50 ; LOCAL DEFINITIONS:

                                     0000    51 ;

                                 000001F4    52 	.PSECT	RSXDEF,ABS

                           00000000  01F4    53 .=0

                           00000050  0000    54 P_FAB:	 .BLKB	FAB$C_BLN

                           000000D0  0050    55 P_FNAME: .BLKB	128

                           00000108  00D0    56 P_NAMBLK:.BLKB	NAM$C_BLN

                                     0108    57 P_SIZE:	 

RSXPARSE        - PARSE DIRECTIVE                                22-AUG-1978 05:10:10   VAX-11 MACRO X0.3-11               Page   2

06.0                                                                                                                             (1)



                                     0108    58 ;

                                     0108    59 ; OFFSETS INTO DPB

                                     0108    60 ;

                           00000000  0108    61 .=0

                           00000002  0000    62 DPB_MODE:	.BLKW	1

                           00000004  0002    63 DPB_LUN:	.BLKW	1

                                     0004    64 DPB_DSPT:	

                           00000006  0004    65 DPB_PRIM:	.BLKW	1

                                     0006    66 DPB_DFNB:

                           00000008  0006    67 DPB_DEFA:	.BLKW	1

                           0000000A  0008    68 DPB_DD:		.BLKW	1

                           0000000C  000A    69 DPB_FNB:	.BLKW	1

                           0000000E  000C    70 DPB_RETDIR:	.BLKW	1

                                     000E    71 	

                                 00000000    72 	.PSECT	RSXPURE,LONG,EXE,NOWRT,SHR,PIC

                                     0000    73 PARSERRORS:				; RMS TO DSW ERROR TRANSLATE

                                     0000    74 	RMSERR	IE.BDV,RMS$_DEV		; BAD DEVICE

                                     0003    75 	RMSERR	IE.DNR,RMS$_DNR

                                     0006    76 	RMSERR	IE.DUN,RMS$_CHN		; CAN'T ASSIGN CHANNEL

                                     0009    77 	RMSERR	IE.BDI,RMS$_DIR

                                     000C    78 	RMSERR	IE.NSF,RMS$_DNF

                                     000F    79 	RMSERR	IE.NSF,RMS$_FNF

                                     0012    80 	RMSERR	IE.BNM,RMS$_SYN

                                     0015    81 	RMSERR	IE.BNM,RMS$_FNM

                                     0018    82 	RMSERR	IE.BNM,RMS$_LNE

                                     001B    83 	RMSERR	IE.BNM,RMS$_TYP

                                     001E    84 	RMSERR	IE.BNM,RMS$_VER

                                 00  0021    85 	.BYTE	0

                                     0022    86  

RSXPARSE        - PARSE DIRECTIVE                                22-AUG-1978 05:10:10   VAX-11 MACRO X0.3-11               Page   3

06.0                                                                                                                             (2)



                                 00000000    88 	.PSECT	RSXCODE,NOWRT,SHR,PIC

                                     0000    89 	.SBTTL	RSX$PARS - RSX11M PARSE DIRECTIVE

                                     0000    90 ;++

                                     0000    91 ; RSX$PARS - RSX11M PARSE DIRECTIVE

                                     0000    92 ;

                                     0000    93 ; FUNCTIONAL DESCRIPTION:

                                     0000    94 ;

                                     0000    95 ; THIS DIRECTIVE IS INCLUDED IN THE VAX/VMS RSX AME TO GIVE THE RSX

                                     0000    96 ; IMAGE WHO USES THE VAX/VMS VERSION OF FCS-11 OR RMS-11 THE ABILITY

                                     0000    97 ; TO TRANSLATE LOGICAL NAME FILE SPECIFIERS.

                                     0000    98 ; THIS ROUTINE IMPLEMENTS THIS DIRECTIVE.

                                     0000    99 ;

                                     0000   100 ; THE DPB FOR MODE 1,2,3 IS AS FOLLOWS:

                                     0000   101 ;

                                     0000   102 ;	.WORD	MODE

                                     0000   103 ;	.WORD	LUN

                                     0000   104 ;	.WORD	ADDR OF DSPT

                                     0000   105 ;	.WORD	ADDR OF DFNB

                                     0000   106 ;	.WORD	ADDR OF DEFAULT DIRECTORY

                                     0000   107 ;	.WORD	ADDR OF FNB

                                     0000   108 ;	.WORD	ADDR OF RETURN DIRECTORY DESC.

                                     0000   109 ;

                                     0000   110 ; THE DPB FOR MODE 4 (RMS-11) IS:

                                     0000   111 ;

                                     0000   112 ;	.WORD	3

                                     0000   113 ;	.WORD	LUN

                                     0000   114 ;	.WORD	ADDR OF PRIMARY DESC

                                     0000   115 ;	.WORD	ADDR OF DEFAULT DESC

                                     0000   116 ;	.WORD	MBZ

                                     0000   117 ;	.WORD	ADDR OF FNB

                                     0000   118 ;	.WORD	ADDR OF RETURNED DIRECTORY DESC

                                     0000   119 ;

                                     0000   120 ; INPUTS:

                                     0000   121 ;

                                     0000   122 ;	R5 = ADDRESS OF THE DPB

                                     0000   123 ;	R10 = ADDRESS OF THE IMAGE IMPURE DATA STORAGE

                                     0000   124 ;	R11 = ADDRESS OF THE IMAGE HEADER

                                     0000   125 ;

                                     0000   126 ; OUTPUTS:

                                     0000   127 ;

                                     0000   128 ;	R10,R11 ARE PRESERVED

                                     0000   129 ;

                                     0000   130 ; IMPLICIT OUTPUTS:

                                     0000   131 ;

                                     0000   132 ;	THE DSW AND PROPER SETTING OF THE C-BIT ARE CONSISTENT

                                     0000   133 ;	WITH THE STATUS OF THE DIRECITVE.

                                     0000   134 ;

                                     0000   135 ; DSW RETURN CODES:

                                     0000   136 ;

                                     0000   137 ;--

                                     0000   138 RSX$PARS::				; RSX11M PARSE DIRECTIVE

                          56     DD  0000   139 	PUSHL	R6			; SAVE STACK

            59            55     D0  0002   140 	MOVL	R5,R9			; COPY ADDRESS OF DPB

            51       0108 8F     3C  0005   141 	MOVZWL	#P_SIZE,R1		; ALLOCATE THE BLOCK

                          FFF3'  30  000A   142 	BSBW	RSX$ALLOCATE		;

            58            50     D0  000D   143 	MOVL	R0,R8			; COPY ADDRESS OF THE BLOCK

                                     0010   144 ;

RSXPARSE        - PARSE DIRECTIVE                                22-AUG-1978 05:10:10   VAX-11 MACRO X0.3-11               Page   4

06.0            RSX$PARS - RSX11M PARSE DIRECTIVE                                                                                (2)



                                     0010   145 ; SET UP THE BLOCK

                                     0010   146 ;

            68            00     2C  0010   147 	MOVC5	#0,(R8),#0,#P_SIZE,(R8)	; ZERO BLOCK

       0108 8F            00         0013       

                          68         0017       

         2C A8         50 A8     9E  0018   148 	MOVAB	P_FNAME(R8),FAB$L_FNA(R8);

         28 A8       00D0 C8     9E  001D   149 	MOVAB	P_NAMBLK(R8),FAB$L_NAM(R8);

       00DC C8         50 A8     9E  0023   150 	MOVAB	P_FNAME(R8),NAM$L_ESA+P_NAMBLK(R8);

       00DA C8         7F 8F     90  0029   151 	MOVB	#127,NAM$B_ESS+P_NAMBLK(R8)

         30 A8         30 AA     9E  002F   152 	MOVAB	I_SCRATCH+8(R10),FAB$L_DNA(R8)

            68            03     90  0034   153 	MOVB	#FAB$C_BID,FAB$B_BID(R8)

         01 A8         50 8F     90  0037   154 	MOVB	#FAB$C_BLN,FAB$B_BLN(R8)

       00D0 C8            02     90  003C   155 	MOVB	#NAM$C_BID,NAM$B_BID+P_NAMBLK(R8)

       00D1 C8            38     90  0041   156 	MOVB	#NAM$C_BLN,NAM$B_BLN+P_NAMBLK(R8)

                                     0046   157 ;

                                     0046   158 ; PROCESS REQUEST TYPE

                                     0046   159 ;

                                     0046   160 	IFNORD	#14,(R9),BADPARAM	; BR IF ACCESS VIOLATION

                                     004C   161 	CASE	(R9),<NORMAL,DEVICE,FNB,RMS>

                                     0058   162 BADPARAM:

                     0465'CF     9F  0058   163 	PUSHAB	W^DONE			; EXIT TO DEALLOCATE THE BLOCK

                                     005C   164 	$DSWIO	#IE.BAD			; ERROR EXIT FOR BAD MODE

                                     0066   165 ;

                                     0066   166 ; RMS MODE - PRIMARY AND SECONDARY STRINGS ARE INPUT

                                     0066   167 ;

            57         04 A9     3C  0066   168 RMS:	MOVZWL	DPB_PRIM(R9),R7		; GET PRIMARY STRING

                          22     13  006A   169 	BEQL	50$			; IF EQL THEN NONE

                                     006C   170 	IFNORD	#4,(R7),BADPARAM	; BR IF ACCESS VIOLATION

            56            67     98  0072   171 	CVTBL	(R7),R6			; GET SIZE AS A BYTE

                          17     13  0075   172 	BEQL	50$			; IF EQL THEN NONE

                          DF     19  0077   173 	BLSS	BADPARAM		; IF LSS THEN ERROR

            57         02 A7     3C  0079   174 	MOVZWL	2(R7),R7		; GET ADDRESS

                          03F7   30  007D   175 	BSBW	REPLACE_DEVICE		; REPLACE DEVICE NAME ON STRING

            50         28 AA     D0  0080   176 	MOVL	I_SCRATCH(R10),R0	; GET SIZE OF THE STRING

         34 A8            50     90  0084   177 	MOVB	R0,FAB$B_FNS(R8)	; INSERT SIZE

         2C BA            50     28  0088   178 	MOVC3	R0,@I_SCRATCH+4(R10),P_FNAME(R8); MOVE STRING 

                       50 A8         008C       

                       28 AA     D4  008E   179 50$:	CLRL	I_SCRATCH(R10)		; SET UP NULL DESC

         2C AA         30 AA     9E  0091   180 	MOVAB	I_SCRATCH+8(R10),I_SCRATCH+4(R10);

            57         06 A9     3C  0096   181 	MOVZWL	DPB_DEFA(R9),R7		; INSERT DEFAULT DATA

                          4F     13  009A   182 	BEQL	80$			; IF EQL THEN NONE

                                     009C   183 	IFNORD	#4,(R7),BADPARAM	; BR IF ACCESS VIOLATION

            56            67     98  00A2   184 	CVTBL	(R7),R6			; GET SIZE AS BYTE

                          12     13  00A5   185 	BEQL	60$			; IF EQL THEN NONE

                          AF     19  00A7   186 	BLSS	BADPARAM		;

            57         02 A7     3C  00A9   187 	MOVZWL	2(R7),R7		; GET ADDRESS

                          03C7   30  00AD   188 	BSBW	REPLACE_DEVICE		; REPLACE DEVICE PART OF STRING

         35 A8         28 AA     90  00B0   189 	MOVB	I_SCRATCH(R10),FAB$B_DNS(R8); INSERT STRING SIZE

            53            01     E0  00B5   190 	BBS	#1,R3,80$		; BR IF DEVICE PRESENT ON STRING

                          32         00B8       

            50         02 A9     9A  00B9   191 60$:	MOVZBL	DPB_LUN(R9),R0		; GET LUN NUMBR

                          2C     13  00BD   192 	BEQL	80$			; IF EQL THEN NONE

       0164 CA            50     91  00BF   193 	CMPB	R0,I_NLUN(R10)		; IN RANGE?

                          25     1A  00C4   194 	BGTRU	80$			; IF GTR THEN YES

            50       0168 DA40   D0  00C6   195 	MOVL	@I_LUT(R10)[R0],R0	; GET ADDRESS OF THE REAL NAME LUT

                          1D     13  00CC   196 	BEQL	80$			; IF EQL THEN NOT ASSIGNED

            56         1E A0     9A  00CE   197 	MOVZBL	LUT_REALNAME(R0),R6	; GET THE SIZE

RSXPARSE        - PARSE DIRECTIVE                                22-AUG-1978 05:10:10   VAX-11 MACRO X0.3-11               Page   5

06.0            RSX$PARS - RSX11M PARSE DIRECTIVE                                                                                (2)



                          56     D6  00D2   198 	INCL	R6			; PASS COLON TOO

         35 A8            56     80  00D4   199 	ADDB	R6,FAB$B_DNS(R8)	; ADJUST SIZE

                          37     19  00D8   200 	BLSS	BADPARAM2		; IF LSS THEN ERROR

            57         1F A0     9E  00DA   201 	MOVAB	LUT_REALNAME+1(R0),R7	; GET ADDRESS

         2C BA         28 AA     28  00DE   202 	MOVC3	I_SCRATCH(R10),@I_SCRATCH+4(R10),I_SCRATCH+8(R10)[R6]

                       30 AA46       00E3       

            67            56     28  00E6   203 	MOVC3	R6,(R7),I_SCRATCH+8(R10); INSERT DEVICE PART

                       30 AA         00E9       

                          0126   31  00EB   204 80$:	BRW	PARSE			; PARSE

                                     00EE   205 ;

                                     00EE   206 ; FNB MODE - USE DFNB FILE NAME FOR PRIMARY STRING

                                     00EE   207 ;

            57         50 A8     9E  00EE   208 FNB:	MOVAB	P_FNAME(R8),R7		; ADDRESS TARGET

            54         06 A9     3C  00F2   209 	MOVZWL	DPB_DFNB(R9),R4		; ADDRESS FILE OF DFNB

                          16     13  00F6   210 	BEQL	10$			; IF EQL THEN NONE

                                     00F8   211 	IFNOWRT	#N.UNIT+2,(R4),BADPARAM2; BR IF ACCESS VIOLATION

                          57     DD  00FE   212 	PUSHL	R7			; SAVE START ADDRESS

            54         06 A4     9E  0100   213 	MOVAB	N.FNAM(R4),R4		;

                          FEF9'  30  0104   214 	BSBW	RSX$R50CVT3		; CONVERT

            57            8E     C2  0107   215 	SUBL	(SP)+,R7		; CALC SIZE

         34 A8            57     90  010A   216 	MOVB	R7,FAB$B_FNS(R8)	;

                          006C   31  010E   217 10$:	BRW	COMMONFCS		; CONTINUE IN COMMON

                                     0111   218 ;

                                     0111   219 ; NORMAL MODE PARSE FOR FCS-11

                                     0111   220 ;

                                     0111   221 ; PRIMARY STRING = DSPT-DEV'DSPT-DIR'DSPT-FILENAME

                                     0111   222 ; DEFAULT NAME = DFNB-OR-LUN-DEVICE'DEF-DIR'DFNB-FILENAME

                                     0111   223 ;

                                     0111   224 ; RETURNS FNB AND DEFAULT DIRECTORY STRING

                                     0111   225 ;

                                     0111   226 BADPARAM2:				;

                          FF44   31  0111   227 	BRW	BADPARAM

                                     0114   228 DEVICE:					; ALSO DEVICE

                                     0114   229 NORMAL:					; NORMAL MODE

            53         50 A8     9E  0114   230 	MOVAB	P_FNAME(R8),R3		;

            57         04 A9     3C  0118   231 	MOVZWL	DPB_DSPT(R9),R7		; GET DSPT ADDRESS

                          5F     13  011C   232 	BEQL	COMMONFCS		; IF EQL THEN NONE SPECIFIED

                                     011E   233 	IFNORD	#12,(R7),BADPARAM2	; BR IF ACCESS VIOLATION

            56            67     98  0124   234 	CVTBL	(R7),R6			; GET SIGNED SIZE

                          2B     13  0127   235 	BEQL	5$			; IF EQL THEN NONE

                          E6     19  0129   236 	BLSS	BADPARAM2		; IF LSS THEN ERROR

            57         02 A7     3C  012B   237 	MOVZWL	2(R7),R7		; ADDRESS STRING

                                     012F   238 	IFNORD	R6,(R7),BADPARAM2	; IF NO READ THEN PADPARAM

                          033F   30  0135   239 	BSBW	REPLACE_DEVICE		; MAP TO RSX LOGICAL NAMES

         34 A8         28 AA     90  0138   240 	MOVB	I_SCRATCH(R10),FAB$B_FNS(R8); MOVE SIZE TO FAB

                          D2     19  013D   241 	BLSS	BADPARAM2		; IF SIGNED THEN ERROR

         2C BA         28 AA     28  013F   242 	MOVC3	I_SCRATCH(R10),@I_SCRATCH+4(R10),P_FNAME(R8); MOVE DEVICE NAME

                       50 A8         0144       

         FF A3            3A     91  0146   243 	CMPB	#^A/:/,-1(R3)		; MOVED A COLON?

                          08     13  014A   244 	BEQL	5$			; IF EQL THEN YES

                       34 A8     96  014C   245 	INCB	FAB$B_FNS(R8)		; ADJUST SIZE

                          C0     19  014F   246 	BLSS	BADPARAM2		;

            83            3A     90  0151   247 	MOVB	#^A/:/,(R3)+		; INSERT COLON

            56            03     9A  0154   248 5$:	MOVZBL	#3,R6			; SET UP LOOP COUNT

            57         04 A9     3C  0157   249 	MOVZWL	DPB_DSPT(R9),R7		; ADDRESS DATA

                          1B     11  015B   250 	BRB	15$

            51            67     98  015D   251 10$:	CVTBL	(R7),R1			; GET THE SIZE

RSXPARSE        - PARSE DIRECTIVE                                22-AUG-1978 05:10:10   VAX-11 MACRO X0.3-11               Page   6

06.0            RSX$PARS - RSX11M PARSE DIRECTIVE                                                                                (2)



                          16     13  0160   252 	BEQL	15$			; IF EQL THEN NONE

                          AD     19  0162   253 	BLSS	BADPARAM2		; IF LSS THEN ERROR

         34 A8            51     80  0164   254 	ADDB	R1,FAB$B_FNS(R8)	; ADJUST SIZE

                          A7     19  0168   255 	BLSS	BADPARAM2		; IF SIGNED THEN ERROR

            52         02 A7     3C  016A   256 	MOVZWL	2(R7),R2		; GET ADDRESS

                                     016E   257 	IFNORD	R1,(R2),BADPARAM2	; BR IF ACCESS VIOLATION

            62            51     28  0174   258 	MOVC3	R1,(R2),(R3)		; COPY STRING

                          63         0177       

                          87     D5  0178   259 15$:	TSTL	(R7)+			;

            E0            56     F5  017A   260 	SOBGTR	R6,10$			; CONTINUE

                                     017D   261 ;

                                     017D   262 ; COMMON ENTRY FOR FCS-11 MODES

                                     017D   263 ;

                                     017D   264 COMMONFCS:

            53         30 AA     9E  017D   265 	MOVAB	I_SCRATCH+8(R10),R3	; ADDRESS DEFAULT NAME

            57         06 A9     3C  0181   266 	MOVZWL	DPB_DFNB(R9),R7		; ADDRESS DFNB

                          0C     13  0185   267 	BEQL	10$			; IF EQL THEN NONE

                                     0187   268 	IFNORD	#N.UNIT+2,(R7),15$	; BR IF ACCESS VIOLATION

            50         1A A7     B0  018D   269 	MOVW	N.DVNM(R7),R0		; GET NAME OF DEVICE

                          1A     12  0191   270 	BNEQ	20$			; IF NEQ THEN SPECIFIED

            56         02 A9     9A  0193   271 10$:	MOVZBL	DPB_LUN(R9),R6		; GET SPECIFIED LUN NUMBER

                          30     13  0197   272 	BEQL	35$			; IF EQL THEN NONE

       0164 CA            56     B1  0199   273 	CMPW	R6,I_NLUN(R10)		; IN RANGE?

                          29     1A  019E   274 	BGTRU	35$			; IF GTRU THEN NO

            56       0168 DA46   D0  01A0   275 	MOVL	@I_LUT(R10)[R6],R6	; GET LUT ENTRY FOR LUN

                          21     13  01A6   276 	BEQL	35$			; IF EQL THEN NOT ASSIGNED

                          0C     11  01A8   277 	BRB	25$			; CONTINUE

                          FEAB   31  01AA   278 15$:	BRW	BADPARAM		;

            51         1C A7     9A  01AD   279 20$:	MOVZBL	N.UNIT(R7),R1		; GET UNIT FROM DNFB

                          FE4C'  30  01B1   280 	BSBW	RSX$SRCHDEV_BIN		; LOOK FOR LOGICAL NAME MATCH

                          0D     12  01B4   281 	BNEQ	30$			; IF NEQ THEN NOT FOUND

            50         1E A6     9A  01B6   282 25$:	MOVZBL	LUT_REALNAME(R6),R0	; GET REAL NAME TO INSERT

                          50     D6  01BA   283 	INCL	R0			; MOVE COLON ALSO

         1F A6            50     28  01BC   284 	MOVC3	R0,LUT_REALNAME+1(R6),(R3); INSERT IT IN STRING

                          63         01C0       

                          06     11  01C1   285 	BRB	35$			; CONTINUE

                          0416   30  01C3   286 30$:	BSBW	RSX$BLDASCDEV		; BUILD THE DEVICE NAME

            83            3A     90  01C6   287 	MOVB	#^A/:/,(R3)+		; INSERT COLON

            53         30 A8     C3  01C9   288 35$:	SUBL3	FAB$L_DNA(R8),R3,R0	; GET SIZE OF STRING SO FAR

                          50         01CD       

         35 A8            50     90  01CE   289 	MOVB	R0,FAB$B_DNS(R8)	; INSERT IT IN FAB

                          D6     19  01D2   290 	BLSS	15$			; IF LSS THEN ERROR

            50         08 A9     3C  01D4   291 	MOVZWL	DPB_DD(R9),R0		; ADDRESS DESC

                          21     13  01D8   292 	BEQL	40$			; IF EQL THEN NONE

                                     01DA   293 	IFNORD	#4,(R0),50$		; BR IF ACCESS VIOLATION

            51            60     98  01E0   294 	CVTBL	(R0),R1			; GET SIZE

                          16     13  01E3   295 	BEQL	40$			; IF EQL THEN NONE

                          C3     19  01E5   296 	BLSS	15$			; IF LSS THEN ERROR

            50         02 A0     3C  01E7   297 	MOVZWL	2(R0),R0		;

                                     01EB   298 	IFNORD	R1,(R0),50$		; BR IF ACCESS VIOLATION

         35 A8            51     80  01F1   299 	ADDB	R1,FAB$B_DNS(R8)	; ADJUST SIZE

                          B3     19  01F5   300 	BLSS	15$			; IF RESULT SIGNED THEN ERROR

            60            51     28  01F7   301 	MOVC3	R1,(R0),(R3)		; INSERT IN STRING

                          63         01FA       

                                     01FB   302 ;

                                     01FB   303 ; INSERT FILE NAME AND VERSION

                                     01FB   304 ;

RSXPARSE        - PARSE DIRECTIVE                                22-AUG-1978 05:10:10   VAX-11 MACRO X0.3-11               Page   7

06.0            RSX$PARS - RSX11M PARSE DIRECTIVE                                                                                (2)



            54            57     D0  01FB   305 40$:	MOVL	R7,R4			; ADDRESS FNB

                          14     13  01FE   306 	BEQL	PARSE			; IF EQL THEN NONE

            57            53     D0  0200   307 	MOVL	R3,R7			; ADDRESS TARGET OF MOVE

                          0335   30  0203   308 	BSBW	RSX$BLDFNAME		; CONSTRUCT FILENAME

            57            53     C2  0206   309 	SUBL	R3,R7			; FIND ACTUAL SIZE

         35 A8            57     80  0209   310 	ADDB	R7,FAB$B_DNS(R8)	; ADJUST TOTAL

                          9B     19  020D   311 	BLSS	15$			; IF LSS THEN ERROR

                          03     11  020F   312 	BRB	PARSE			; CONTINUE

                          FE44   31  0211   313 50$:	BRW	BADPARAM		; 

RSXPARSE        - PARSE DIRECTIVE                                22-AUG-1978 05:10:10   VAX-11 MACRO X0.3-11               Page   8

06.0            RSX$PARS - RSX11M PARSE DIRECTIVE                                                                                (3)



                                     0214   315 	.ENABL	LSB

                                     0214   316 ;

                                     0214   317 ; PARSE THE STRING

                                     0214   318 ;

                          7E     7C  0214   319 PARSE:	CLRQ	-(SP)			; SET UP ARGS

                          58     DD  0216   320 	PUSHL	R8			;

   00000000'GF            03     FB  0218   321 	CALLS	#3,G^SYS$PARSE		;

                          50     DD  021F   322 	PUSHL	R0			; SAVE STATUS

            57         50 A8     9E  0221   323 	MOVAB	P_FNAME(R8),R7		; ADDRESS RESULT

         2C AA            57     D0  0225   324 	MOVL	R7,I_SCRATCH+4(R10)	;

         28 AA       00DB C8     9A  0229   325 	MOVZBL	P_NAMBLK+NAM$B_ESL(R8),I_SCRATCH(R10); AND GET SIZE

                          3F     BB  022F   326 	PUSHR	#^M<R0,R1,R2,R3,R4,R5>	; SAVE REGISTERS

                                     0231   327 ;

                                     0231   328 ; STRIP NODE NAME FROM STRING

                                     0231   329 ;

         28 AA            3A     3A  0231   330 	LOCC	#^A/:/,I_SCRATCH(R10),(R7); LOOK FOR A COLON

                          67         0235       

                          1B     13  0236   331 	BEQL	30$			; IF EQL THEN NOT FOUND

         01 A1            3A     91  0238   332 	CMPB	#^A/:/,1(R1)		; DOUBLE COLON?

                          15     12  023C   333 	BNEQ	30$			; IF NEQ THEN NO NODE NAME

         2C AA         02 A1     9E  023E   334 	MOVAB	2(R1),I_SCRATCH+4(R10)	; RESET STRING ADDRESS

            57         02 A1     9E  0243   335 	MOVAB	2(R1),R7		;

            50            02     C3  0247   336 	SUBL3	#2,R0,I_SCRATCH(R10)	; RESET SIZE

                       28 AA         024A       

            60   00000000'8F     D0  024C   337 	MOVL	#RMS$_SYN,(R0)		; SET SYNTAX ERROR

                                     0253   338 ;

                                     0253   339 ; COLAPSE QUOTED STRINGS FROM RESULT

                                     0253   340 ;

         28 AA            22     3A  0253   341 30$:	LOCC	#^A/"/,I_SCRATCH(R10),(R7); QUOTE?

                          67         0257       

                          24     13  0258   342 	BEQL	50$			; IF EQL THEN DONE

            7E            51     D0  025A   343 	MOVL	R1,-(SP)		; SAVE ADDR

                          51     D6  025D   344 	INCL	R1

                          50     D7  025F   345 	DECL	R0

            50            22     3A  0261   346 	LOCC	#^A/"/,R0,(R1)		; FIND MATCH

                          61         0264       

                          04     BA  0265   347 	POPR	#^M<R2>			; RETREIVE REG

                          0E     13  0267   348 	BEQL	40$			; IF EQL THEN ERROR

                          50     D7  0269   349 	DECL	R0

         01 A1            50     28  026B   350 	MOVC3	R0,1(R1),(R2)

                          62         026F       

            53            57     C3  0270   351 	SUBL3	R7,R3,I_SCRATCH(R10)	; RESET SIZE

                       28 AA         0273       

                          DC     11  0275   352 	BRB	30$			; DONE

            6E   00000000'8F     D0  0277   353 40$:	MOVL	#RMS$_SYN,(SP)		; CHANGE STATUS OF PARSE

                          3F     BA  027E   354 50$:	POPR	#^M<R0,R1,R2,R3,R4,R5>	;

            56         28 AA     D0  0280   355 	MOVL	I_SCRATCH(R10),R6	; GET SIZE

                          48     13  0284   356 	BEQL	100$			; IF EQL THEN DONE

            45            50     E8  0286   357 	BLBS	R0,100$			; BR IF NO PARSE ERROR

                          01EB   30  0289   358 	BSBW	REPLACE_DEVICE		; REPLACE THE DEVICE NAME

            53            01     E1  028C   359 	BBC	#1,R3,100$		; BR IF NO DEVICE FOUND

                          3E         028F       

            53            00     E1  0290   360 	BBC	#0,R3,100$		; BR IF NO CHANGE

                          3A         0293       

                     0104 C8     DD  0294   361 	PUSHL	P_NAMBLK+NAM$L_FNB(R8)	; SAVE STATUS BITS

                       35 A8     94  0298   362 	CLRB	FAB$B_DNS(R8)		; SET NO DEFAULT

       00DC C8         50 A8     9E  029B   363 	MOVAB	P_FNAME(R8),P_NAMBLK+NAM$L_ESA(R8); INSERT ADDRESS FOR RESULT

RSXPARSE        - PARSE DIRECTIVE                                22-AUG-1978 05:10:10   VAX-11 MACRO X0.3-11               Page   9

06.0            RSX$PARS - RSX11M PARSE DIRECTIVE                                                                                (3)



         5A A8         7F 8F     90  02A1   364 	MOVB	#127,P_FNAME+NAM$B_ESS(R8);

         34 A8         28 AA     90  02A6   365 	MOVB	I_SCRATCH(R10),FAB$B_FNS(R8)

         2C A8         2C AA     D0  02AB   366 	MOVL	I_SCRATCH+4(R10),FAB$L_FNA(R8)

                          7E     7C  02B0   367 	CLRQ	-(SP)

                          58     DD  02B2   368 	PUSHL	R8

   00000000'9F            03     FB  02B4   369 	CALLS	#3,@#SYS$PARSE		; PARSE THE STRING

                     0104 C8   8ED0  02BB   370 	POPL	P_NAMBLK+NAM$L_FNB(R8)	; RESTORE STATUS BITS

            6E            50     D0  02C0   371 	MOVL	R0,(SP)			; SAVE STATUS

         2C AA         50 A8     9E  02C3   372 	MOVAB	P_FNAME(R8),I_SCRATCH+4(R10); INSERT SECOND RESULT'S STRING

         28 AA       00DB C8     9A  02C8   373 	MOVZBL	P_NAMBLK+NAM$B_ESL(R8),I_SCRATCH(R10)

            51       0000'CF     9E  02CE   374 100$:	MOVAB	W^PARSERRORS,R1		; TRANSLATE ERROR TO DSW FORM

                          50   8ED0  02D3   375 	POPL	R0

            17            50     E8  02D6   376 	BLBS	R0,120$			; IF LOW SET THEN NO ERROR

         26 AB         FF 8F     9B  02D9   377 	MOVZBW	#IE.BAD,H.DSW(R11)	; SET DEFUALT ERROR

         24 AA            01     A8  02DE   378 	BISW	#1,I_PS(R10)		;

            56            81     98  02E2   379 110$:	CVTBL	(R1)+,R6

                          09     13  02E5   380 	BEQL	120$			; IF EQL THEN DEFAULT ERROR

            81            50     B1  02E7   381 	CMPW	R0,(R1)+		; ERROR MATCH?

                          F6     12  02EA   382 	BNEQ	110$			; IF NEQ THEN CONTINUE

         26 AB            56     9B  02EC   383 	MOVZBW	R6,H.DSW(R11)		; INSERT ERROR

                                     02F0   384 120$:

         2C BA         5F 8F     91  02F0   385 	CMPB	#^A/_/,@I_SCRATCH+4(R10); START WITH UNDERSCORE?

                          08     12  02F5   386 	BNEQ	130$			; IF NEQ THEN NO

                       28 AA     D7  02F7   387 	DECL	I_SCRATCH(R10)		; ADJUST SIZE AND ADDRESS

                       2C AA     D6  02FA   388 	INCL	I_SCRATCH+4(R10)	;

                          F1     11  02FD   389 	BRB	120$			;

                          68     D4  02FF   390 130$:	CLRL	(R8)			; SET NO DEVICE OR UNIT

            56         28 AA     7D  0301   391 	MOVQ	I_SCRATCH(R10),R6	; PARSE STRING FOR RSX FORM OF DEVICE/UNIT

            56            3A     3A  0305   392 	LOCC	#^A/:/,R6,(R7)		;

                          67         0308       

                          03     12  0309   393 	BNEQ	135$			; IF NEQ THEN FOUND

                          0081   31  030B   394 	BRW	210$			; CONTINUE

                       28 AA     DD  030E   395 135$:	PUSHL	I_SCRATCH(R10)		; SAVE CURRENT SIZE

         28 AA            50     C2  0311   396 	SUBL	R0,I_SCRATCH(R10)	; SET NAME SIZE

                          FCE8'  30  0315   397 	BSBW	RSX$SRCHDEV_ASC		; SEARCH FOR DEVICE

                          0A     12  0318   398 	BNEQ	140$			; IF NEQ THEN NOT FOUND

            50         2E A6     3C  031A   399 	MOVZWL	LUT_INFONAME(R6),R0	; GET NAME AND UNIT

            51         30 A6     9A  031E   400 	MOVZBL	LUT_INFOUNIT(R6),R1	;

                          61     11  0322   401 	BRB	200$			; CONTINUE

       0104 C8            10     E1  0324   402 140$:	BBC	#NAM$V_PPF,P_NAMBLK+NAM$L_FNB(R8),170$; BR IF TRAN NOT PPF

                          54         0329       

            51            36     9A  032A   403 	MOVZBL	#LUT_SIZE,R1		; ALLOCATE A LUT

                          FCD0'  30  032D   404 	BSBW	RSX$ALLOCATE		;

            56            50     D0  0330   405 	MOVL	R0,R6			; COPY BLOCK ADDRESS

            66            00     2C  0333   406 	MOVC5	#0,(R6),#0,#LUT_SIZE,(R6);

            36            00         0336       

                          66         0338       

         2C BA         28 AA     2C  0339   407 	MOVC5	I_SCRATCH(R10),@I_SCRATCH+4(R10),#0,#15,LUT_REALNAME+1(R6)

            0F            00         033E       

                       1F A6         0340       

         1E A6         28 AA     90  0342   408 	MOVB	I_SCRATCH(R10),LUT_REALNAME(R6);

         2E A6       4C24 8F     B0  0347   409 	MOVW	#^A/$L/,LUT_INFONAME(R6);

         10 A6            01     AE  034D   410 	MNEGW	#1,LUT_RSXNAME(R6)	; SET NO RSX NAME

            01       00FF 8F     3D  0351   411 	ACBW	#255,#1,I_PPFINDEX(R10),150$; BR IF OK

            000A     0162 CA         0356       

                                     035B   412 	$ABORT	#RSX$_INSFDYNMEM	; ABORT IF OVERFLOW

         30 A6       0162 CA     B0  0365   413 150$:	MOVW	I_PPFINDEX(R10),LUT_INFOUNIT(R6)

RSXPARSE        - PARSE DIRECTIVE                                22-AUG-1978 05:10:10   VAX-11 MACRO X0.3-11               Page  10

06.0            RSX$PARS - RSX11M PARSE DIRECTIVE                                                                                (3)



         0A A6            08     90  036B   414 155$:	MOVB	#1@LUTV_PRM,LUT_FLAGS(R6);

       00E4 DA            66     0E  036F   415 	INSQUE	(R6),@I_LOGNAME+4(R10) ;

            50         2E A6     3C  0374   416 	MOVZWL	LUT_INFONAME(R6),R0	; SET UP NAME AND UNIT FOR FNB

            51         30 A6     3C  0378   417 	MOVZWL	LUT_INFOUNIT(R6),R1	;

                          07     11  037C   418 	BRB	200$			; CONTINUE

            55         28 AA     7D  037E   419 170$:	MOVQ	I_SCRATCH(R10),R5	; GET SIZE AND ADDRESS

                          02BD   30  0382   420 	BSBW	RSX$PARSEDEV		; FIND THE NAME/UNIT

            56            8E     D0  0385   421 200$:	MOVL	(SP)+,R6 		; RESTORE REMAINDER SIZE AND ADDRESS

         28 AA            56     D0  0388   422 	MOVL	R6,I_SCRATCH(R10)	; RESTORE ORIG SIZE

            68            50     7D  038C   423 	MOVQ	R0,(R8)			; SAVE IN USED FAB

            03            69     B1  038F   424 210$:	CMPW	DPB_MODE(R9),#3		; RMS OR FCS MODE

                          23     13  0392   425 	BEQL	240$			; CONTINUE

                                     0394   426 ;

                                     0394   427 ; MOVE ONLY DIRECTORY IN FCS MODES

                                     0394   428 ;

            56         5B 8F     3A  0394   429 220$:	LOCC	#^A/[/,R6,(R7)		; LOOK FOR DIRECTORY

                          67         0398       

                          0A     12  0399   430 	BNEQ	230$			; IF NEQ THEN FOUND

            56            3C     3A  039B   431 	LOCC	#^A/</,R6,(R7)		; TRY OTHER DELIM

                          67         039E       

                          04     12  039F   432 	BNEQ	230$			; IF EQL THEN FOUND

                          56     D4  03A1   433 	CLRL	R6			; RETURN NO DIRECTORY

                          55     11  03A3   434 	BRB	290$			; CONTINUE

            56            50     7D  03A5   435 230$:	MOVQ	R0,R6			; SET UP REMAINDER AS RESULT

            61            02     81  03A8   436 	ADDB3	#2,(R1),R0		; LOOK FOR MATCH

                          50         03AB       

            56            50     3A  03AC   437 	LOCC	R0,R6,(R1)		; 

                          61         03AF       

                          48     13  03B0   438 	BEQL	290$			; IF EQL THEN SYNTAX ERROR OF SOME KIND

            56            50     C2  03B2   439 	SUBL	R0,R6			; RETURN REMAINDER

                          56     D6  03B5   440 	INCL	R6			; AND END DELIM

            55         0C A9     3C  03B7   441 240$:	MOVZWL	DPB_RETDIR(R9),R5	; ADDRESS RETURN DIRECOTRY

                          3D     13  03BB   442 	BEQL	290$			; IF EQL THEN NONE

                                     03BD   443 	IFNOWRT	#4,(R5),250$		; BR IF ACCESS VIOLATION

            54            65     3C  03C3   444 	MOVZWL	(R5),R4			; GET SIZE

            53         02 A5     3C  03C6   445 	MOVZWL	2(R5),R3		; GET ADDRESS

                                     03CA   446 	IFNOWRT	R4,(R3),250$		; BR IF ACCESS VIAOLATION

                          03     11  03D0   447 	BRB	260$			;

                          009F   31  03D2   448 250$:	BRW	RETERROR		; RETURN

            65            56     B0  03D5   449 260$:	MOVW	R6,(R5)			; ASSUME NEW SHORTER THAN OLD

            56            54     B1  03D8   450 	CMPW	R4,R6			; REQUEST LARGER THAN ACTUAL

                          03     1A  03DB   451 	BGTRU	270$			; IF GTRU THEN OK

            65            54     B0  03DD   452 	MOVW	R4,(R5)			; RETURN TOTAL AMOUNT

            56            3C     3A  03E0   453 270$:	LOCC	#^A/</,R6,(R7)		; RESET <> PAIR

                          67         03E3       

                          0E     13  03E4   454 	BEQL	280$			; IF EQL THEN NONE

            61         5B 8F     90  03E6   455 	MOVB	#^A/[/,(R1)		;

            56            3E     3A  03EA   456 	LOCC	#^A/>/,R6,(R7)		;

                          67         03ED       

                          04     13  03EE   457 	BEQL	280$			;

            61         5D 8F     90  03F0   458 	MOVB	#^A/]/,(R1)		;

            67            56     2C  03F4   459 280$:	MOVC5	R6,(R7),#0,R4,(R3)	; RETURN RESULT

            54            00         03F7       

                          63         03F9       

                                     03FA   460 ;

                                     03FA   461 ; RETURN FNB

                                     03FA   462 ;

RSXPARSE        - PARSE DIRECTIVE                                22-AUG-1978 05:10:10   VAX-11 MACRO X0.3-11               Page  11

06.0            RSX$PARS - RSX11M PARSE DIRECTIVE                                                                                (3)



            59         0A A9     3C  03FA   463 290$:	MOVZWL	DPB_FNB(R9),R9		; ADDRESS RETURN FNB

                          65     13  03FE   464 	BEQL	DONE			; IF EQL THEN NO RETURN

                                     0400   465 	IFNOWRT	#N.UNIT+2,(R9),RETERROR	; BR IF FAILURE

            69            00     2C  0406   466 	MOVC5	#0,(R9),#0,#N.UNIT+2,(R9)

            1E            00         0409       

                          69         040B       

       00FA C8            06     28  040C   467 	MOVC3	#6,P_NAMBLK+NAM$W_DID(R8),N.DID(R9); RETURN DID

                       14 A9         0411       

         10 A9       0104 C8     90  0413   468 	MOVB	P_NAMBLK+NAM$L_FNB(R8),N.STAT(R9); RETURN DESC BITS

                                 D3  0419   469 	BITL	#<NAM$M_WILD_UFD!NAM$M_WILD_SFD1!NAM$M_WILD_SFD2>,-

       0104 C8   07000000 8F         041A   470 		P_NAMBLK+NAM$L_FNB(R8)	

                          09     13  0422   471 	BEQL	300$			; IF EQL THEN NO ERROR

         26 AB         CC 8F     9B  0424   472 	MOVZBW	#IE.BDI,H.DSW(R11)	; SET ERROR CODE

         24 AA            01     A8  0429   473 	BISW	#1,I_PS(R10)		; SET C-BIT

                                     042D   474 300$:	

                                     042D   475 ;

                                     042D   476 ; MOVE FILE NAME TO FNB

                                     042D   477 ;

         28 AA         5D 8F     3A  042D   478 	LOCC	#^A/]/,I_SCRATCH(R10),@I_SCRATCH+4(R10); LOOK FOR FILENAME START

                       2C BA         0432       

                          16     12  0434   479 	BNEQ	310$			; IF NEQ THEN FOUND

         28 AA            3E     3A  0436   480 	LOCC	#^A/>/,I_SCRATCH(R10),@I_SCRATCH+4(R10)	;

                       2C BA         043A       

                          0E     12  043C   481 	BNEQ	310$			; IF NEQ THEN FOUND

         28 AA            3A     3A  043E   482 	LOCC	#^A/:/,I_SCRATCH(R10),@I_SCRATCH+4(R10)

                       2C BA         0442       

                          06     12  0444   483 	BNEQ	310$

            50         28 AA     7D  0446   484 	MOVQ	I_SCRATCH(R10),R0	; ASSUME ENTIRE STRING

                          04     11  044A   485 	BRB	320$

                          51     D6  044C   486 310$:	INCL	R1

                          50     D7  044E   487 	DECL	R0

                                     0450   488 320$:	

                          6140   94  0450   489 	CLRB	(R1)[R0]

            54            59     D0  0453   490 	MOVL	R9,R4			; ADDRESS TARGET FNB

            57            51     D0  0456   491 	MOVL	R1,R7			; COPY START ADDRESS

                          0124   30  0459   492 	BSBW	RSX$RETFNAME		; RETURN FILE NAME

         1A A9            68     B0  045C   493 330$:	MOVW	(R8),N.DVNM(R9)

         1C A9         04 A8     B0  0460   494 	MOVW	4(R8),N.UNIT(R9)

            51       0108 8F     3C  0465   495 DONE:	MOVZWL	#P_SIZE,R1		; RETURN FAB/NAME BLOCK

            50            58     D0  046A   496 	MOVL	R8,R0			;

                     0040 8F     BA  046D   497 	POPR	#^M<R6>			; RESTORE STACK

                          FB8C'  31  0471   498 	BRW	RSX$DEALLOCATE		;

                                     0474   499 RETERROR:				; ERROR IN RETURNING ARGS

                          FBE1   31  0474   500 	BRW	BADPARAM		; CONTINUE IN COMMON

                                     0477   501 	.DSABL	LSB

RSXPARSE        - PARSE DIRECTIVE                                22-AUG-1978 05:10:10   VAX-11 MACRO X0.3-11               Page  12

06.0            REPLACE_DEVICE - REPLACE DEVICE NAME ON STRING                                                                   (4)



                                     0477   503 	.SBTTL	REPLACE_DEVICE - REPLACE DEVICE NAME ON STRING

                                     0477   504 ;++

                                     0477   505 ; REPLACE_DEVICE - REPLACE DEVICE NAME ON STRING

                                     0477   506 ;

                                     0477   507 ; FUNCTIONAL DESCRIPTION:

                                     0477   508 ;

                                     0477   509 ; THIS ROUTINE, GIVEN A FILE SPEC WILL REPLACE THE DEVICE PART WITH THE

                                     0477   510 ; INFORMATION CONTAINED IN THE RSX LOGICAL NAME TABLE. IN ANY CASE THE 

                                     0477   511 ; RESULTANT STRING IS BUILT IN THE SCRATCH AREA.

                                     0477   512 ;

                                     0477   513 ; INPUTS:

                                     0477   514 ;

                                     0477   515 ;	R6 = SIZE OF THE STRING

                                     0477   516 ;	R7 = ADDRESS OF THE STRING

                                     0477   517 ;

                                     0477   518 ; OUTPUTS:

                                     0477   519 ;

                                     0477   520 ;	R0 = STATUS OF OPERATION (SYNTAX ERROR)

                                     0477   521 ;

                                     0477   522 ;	I_SCRATCH(R10) IS THE DESC OF THE RESULT

                                     0477   523 ;

                                     0477   524 ;	R3 = IF BIT 0 SET THEN CHANGE OCCURED

                                     0477   525 ;	     IF BIT 1 SET THEN DEVICE NAME IS PRESENT

                                     0477   526 ;

                                     0477   527 ;	R4-R9 ARE PRESERVED.

                                     0477   528 ;--

                                     0477   529 REPLACE_DEVICE:				; REPLACE DEVICE NAME

                     03F0 8F     BB  0477   530 	PUSHR	#^M<R4,R5,R6,R7,R8,R9>

                          7E     D4  047B   531 	CLRL	-(SP)			; SET FLAGS

                       28 AA     D4  047D   532 	CLRL	I_SCRATCH(R10)		; SET NO STRING

         2C AA         30 AA     9E  0480   533 	MOVAB	I_SCRATCH+8(R10),I_SCRATCH+4(R10); DESC

            56            3A     3A  0485   534 5$:	LOCC	#^A/:/,R6,(R7)		; LOOK FOR DEVICE NAME

                          67         0488       

                          28     12  0489   535 	BNEQ	40$			; IF NEQ THEN FOUND

            56         5B 8F     3A  048B   536 	LOCC	#^A/[/,R6,(R7)		; IS THE ENTIRE STRING DEVICE?

                          67         048F       

                          12     12  0490   537 	BNEQ	10$			; IF NEQ THEN NO

            56            3C     3A  0492   538 	LOCC	#^A/</,R6,(R7)		; IS THE ENTIRE STRING DEVICE?

                          67         0495       

                          0C     12  0496   539 	BNEQ	10$			; IF NEQ THEN NO

            56            2E     3A  0498   540 	LOCC	#^A/./,R6,(R7)		; IS THE ENTIRE STRING DEVICE?

                          67         049B       

                          06     12  049C   541 	BNEQ	10$			; IF NEQ THEN NO

            56            3B     3A  049E   542 	LOCC	#^A/;/,R6,(R7)		; IS THE ENTIRE STRING DEVICE?

                          67         04A1       

                          1F     13  04A2   543 	BEQL	50$			; IF EQL THEN ENTIRE STRING IS DEVICE

         28 AA            56     D0  04A4   544 10$:	MOVL	R6,I_SCRATCH(R10)	; SET SIZE OF STRING

            67            56     2C  04A8   545 	MOVC5	R6,(R7),#0,#127,I_SCRATCH+8(R10); MOVE THE STRING OVER

       007F 8F            00         04AB       

                       30 AA         04AF       

                          7C     11  04B1   546 	BRB	210$			; EXIT

         01 A1            3A     91  04B3   547 40$:	CMPB	#^A/:/,1(R1)		; NODE NAME?

                          0A     12  04B7   548 	BNEQ	50$			; IF NEQ THEN NO

            51            02     C1  04B9   549 	ADDL3	#2,R1,R7		; RESET ADDRESS

                          57         04BC       

            50            02     C3  04BD   550 	SUBL3	#2,R0,R6		; AND SIZE

                          56         04C0       

RSXPARSE        - PARSE DIRECTIVE                                22-AUG-1978 05:10:10   VAX-11 MACRO X0.3-11               Page  13

06.0            REPLACE_DEVICE - REPLACE DEVICE NAME ON STRING                                                                   (4)



                          C2     11  04C1   551 	BRB	5$			; TRY AGAIN

            7E            50     7D  04C3   552 50$:	MOVQ	R0,-(SP)		; SAVE REMAINDER OF STRING

            56            50     C3  04C6   553 	SUBL3	R0,R6,I_SCRATCH(R10)	; CALC DEVICE NAME SIZE

                       28 AA         04C9       

         2C AA            57     D0  04CB   554 	MOVL	R7,I_SCRATCH+4(R10)	; INSERT ADDRESS

         5F 8F            67     91  04CF   555 	CMPB	(R7),#^A/_/		; START WITH UNDERSCORE?

                          37     13  04D3   556 	BEQL	100$			; IF EQL THEN YES

                          FB28'  30  04D5   557 	BSBW	RSX$SRCHDEV_ASC		; LOOK FOR MATCH

                          0C     13  04D8   558 	BEQL	73$			; IF EQL THEN FOUND

            55         28 AA     7D  04DA   559 70$:	MOVQ	I_SCRATCH(R10),R5	; PARSE THE DEVICE NAME

                          0161   30  04DE   560 	BSBW	RSX$PARSEDEV		;

                          FB1C'  30  04E1   561 	BSBW	RSX$SRCHDEV		;

                          26     12  04E4   562 	BNEQ	100$			; IF NEQ THEN NOT FOUND

            50         1E A6     9A  04E6   563 73$:	MOVZBL	LUT_REALNAME(R6),R0	; GET REAL SIZE

         28 AA            50     D1  04EA   564 	CMPL	R0,I_SCRATCH(R10)	; SIZES MATCH?

                          07     12  04EE   565 	BNEQ	75$			; IF EQL THEN NO

            67            50     29  04F0   566 	CMPC	R0,(R7),LUT_REALNAME+1(R6) ; NAME MATCH?

                       1F A6         04F3       

                          03     13  04F5   567 	BEQL	80$			; IF EQL THEN NO NAME CHANGE

                       08 AE     D6  04F7   568 75$:	INCL	8(SP)			; SET NAME CHANGED FLAG

         28 AA         1E A6     9A  04FA   569 80$:	MOVZBL	LUT_REALNAME(R6),I_SCRATCH(R10)

            57         1F A6     9E  04FF   570 	MOVAB	LUT_REALNAME+1(R6),R7

                          6E     D5  0503   571 	TSTL	(SP)			; IF OTHER STRING THEN NO COLON

                          05     12  0505   572 	BNEQ	100$			;

                       28 AA     96  0507   573 	INCB	I_SCRATCH(R10)		; MOVE COLON ALSO

                          28     19  050A   574 	BLSS	300$			; IF LSS THEN ERROR - RETURN NOTHING

            67         28 AA     28  050C   575 100$:	MOVC3	I_SCRATCH(R10),(R7),I_SCRATCH+8(R10);

                       30 AA         0510       

         2C AA         30 AA     9E  0512   576 	MOVAB	I_SCRATCH+8(R10),I_SCRATCH+4(R10)

            50            8E     7D  0517   577 	MOVQ	(SP)+,R0		; GET REMAINDER OF STRING

         28 AA            50     80  051A   578 	ADDB	R0,I_SCRATCH(R10)	; ADJUST TOTAL SIZE

                          14     19  051E   579 	BLSS	300$			; IF EQL THEN RETURN NOTHING

            61            50     28  0520   580 	MOVC3	R0,(R1),(R3)

                          63         0523       

         28 AA            3A     3A  0524   581 	LOCC	#^A/:/,I_SCRATCH(R10),@I_SCRATCH+4(R10); ANY DEVICE NAME NOW?

                       2C BA         0528       

                          03     13  052A   582 	BEQL	210$			; IF EQL THEN NO

            6E            02     88  052C   583 	BISB	#2,(SP)			; SET DEVICE NAME FOUND

                     03F8 8F     BA  052F   584 210$:	POPR	#^M<R3,R4,R5,R6,R7,R8,R9> ;RESTORE REGS AND SET NAME CONTROL

                                 05  0533   585 	RSB

                       28 AA     D4  0534   586 300$:	CLRL	I_SCRATCH(R10)		; SET NO RESULT

                          6E     D4  0537   587 	CLRL	(SP)			;

                          F4     11  0539   588 	BRB	210$			; RETURN

RSXPARSE        - PARSE DIRECTIVE                                22-AUG-1978 05:10:10   VAX-11 MACRO X0.3-11               Page  14

06.0            RSX$BLDFNAME - BUILD FILENAME STRING FROM FNB                                                                    (5)



                                     053B   590 	.SBTTL	RSX$BLDFNAME - BUILD FILENAME STRING FROM FNB

                                     053B   591 ;++

                                     053B   592 ; RSX$BLDFNAME - BUILD FILENAME STRING FROM FNB

                                     053B   593 ;

                                     053B   594 ; FUNCTIONAL DESCRIPTION:

                                     053B   595 ;

                                     053B   596 ; THIS ROUTINE BUILDS A FILE NAME STRING FROM A FNB.

                                     053B   597 ;

                                     053B   598 ; INPUTS:

                                     053B   599 ;

                                     053B   600 ;	R4 = FNB

                                     053B   601 ;	R7 = TARGET STRING

                                     053B   602 ;

                                     053B   603 ; OUTPUTS:

                                     053B   604 ;

                                     053B   605 ;	R0 = SIZE OF TARGET STRING

                                     053B   606 ;	R7 = ADDRESS OF THE NEXT TARGET STRING BYTE

                                     053B   607 ;

                                     053B   608 ;	R2-R11 ARE PRESERVED

                                     053B   609 ;--

                                     053B   610 RSX$BLDFNAME::				; BUILD FILENAME FROM FNB

                     007C 8F     BB  053B   611 	PUSHR	#^M<R2,R3,R4,R5,R6>	;

            56            57     D0  053F   612 	MOVL	R7,R6			; COPY START ADDRESS

            54         06 A4     9E  0542   613 	MOVAB	N.FNAM(R4),R4		; ADDRESS FNB NAME

                          FAB7'  30  0546   614 	BSBW	RSX$R50CVT3		; CONVERT FILE NAME

            87            2E     90  0549   615 	MOVB	#^A/./,(R7)+		; INSERT .

                          FAB1'  30  054C   616 	BSBW	RSX$R50CVT1		; CONVERT TYPE

            87            3B     90  054F   617 	MOVB	#^A/;/,(R7)+		; INSERT SEMI COLON

            51            64     32  0552   618 	CVTWL	(R4),R1			; GET VERSION NUMBER

                          06     18  0555   619 	BGEQ	10$			; IF GEQ THEN PLUS

            87            2D     90  0557   620 	MOVB	#^A/-/,(R7)+		; INSERT MUNIS SIGN

            51            51     CE  055A   621 	MNEGL	R1,R1			; CONVERT TO POSITIVE

                          52     D4  055D   622 10$:	CLRL	R2			; RESET ACCUM

            53         05 A7     9E  055F   623 	MOVAB	5(R7),R3		; ADDRESS STRING END

            50            53     D0  0563   624 	MOVL	R3,R0			; COPY END ADDRESS

            51            0A     7B  0566   625 15$:	EDIV	#10,R1,R1,R4		;

            54            51         0569       

            54            30     81  056B   626 	ADDB3	#^A/0/,R4,-(R3)		; INSERT CHARACTER

                          73         056E       

            57            53     D1  056F   627 	CMPL	R3,R7			; CONVERTED ENOUGH?

                          F2     12  0572   628 	BNEQ	15$			; IF NEQ THEN NO

            57            50     D0  0574   629 	MOVL	R0,R7			; SET UP END ADDRESS

            57            56     C3  0577   630 	SUBL3	R6,R7,R0		; CALC SIZE

                          50         057A       

                     007C 8F     BA  057B   631 	POPR	#^M<R2,R3,R4,R5,R6>	; RESTORE REGISTERS

                                 05  057F   632 	RSB				; RETURN

RSXPARSE        - PARSE DIRECTIVE                                22-AUG-1978 05:10:10   VAX-11 MACRO X0.3-11               Page  15

06.0            RSX$RETFNAME - RETURN FILENAME FROM ASCII TO FN                                                                  (6)



                                     0580   634 	.SBTTL	RSX$RETFNAME - RETURN FILENAME FROM ASCII TO FNB

                                     0580   635 ;++

                                     0580   636 ; RSX$RETFNAME - RETURN FILENAME FROM ASCII TO FNB

                                     0580   637 ;

                                     0580   638 ; FUNCTIONAL DESCRIPTION:

                                     0580   639 ;

                                     0580   640 ; THIS ROUTINE INSERTS AN ASCII FILENAME INTO AN FNB.

                                     0580   641 ;

                                     0580   642 ; INPUTS:

                                     0580   643 ;

                                     0580   644 ;	R4 = ADDRESS OF THE FNB

                                     0580   645 ;	R7 = ADDRESS OF THE FILENAME STRING

                                     0580   646 ;

                                     0580   647 ; OUTPUTS:

                                     0580   648 ;

                                     0580   649 ;	R2-R11 ARE PRESERVED.

                                     0580   650 ;--

                                     0580   651 RSX$RETFNAME::				;

                     01FC 8F     BB  0580   652 	PUSHR	#^M<R2,R3,R4,R5,R6,R7,R8>

                          54     DD  0584   653 	PUSHL	R4			; SAVE FNB ADDRESS

            54         06 A4     9E  0586   654 	MOVAB	N.FNAM(R4),R4		; ADDRESS TARGET FOR CONVERT

            51            57     D0  058A   655 	MOVL	R7,R1			; ADDRESS NAME STRING

                          50     D4  058D   656 	CLRL	R0			; SET DOT IS ILLEGAL

                          FA6E'  30  058F   657 	BSBW	RSX$ASCR503		; CONVERT THREE WORDS

            2A            61     91  0592   658 	CMPB	(R1),#^A/*/		; WILD CARD?

                          02     12  0595   659 	BNEQ	30$			; IF NEQ THEN NO

                          51     D6  0597   660 	INCL	R1			; POINT TO NEXT FIELD

            2E            61     91  0599   661 30$:	CMPB	(R1),#^A/./		; TYPE PRESENT?

                          0E     12  059C   662 	BNEQ	40$			; IF NEQ THEN TRY VERSION

                          51     D6  059E   663 	INCL	R1			; POINT TO TYPE

                          50     D4  05A0   664 	CLRL	R0			;

                          FA5B'  30  05A2   665 	BSBW	RSX$ASCR501		; CONVERT TYPE FIELD

            2A            61     91  05A5   666 	CMPB	(R1),#^A/*/		; WILD CARD?

                          02     12  05A8   667 	BNEQ	40$			; IF NEQ THEN NO

                          51     D6  05AA   668 	INCL	R1			; POINT TO NEXT FIELD

                          10     BA  05AC   669 40$:	POPR	#^M<R4>			; RETREIVE FNB ADDRESS

            2E            61     91  05AE   670 	CMPB	(R1),#^A/./		; DOT?

                          05     13  05B1   671 	BEQL	45$			; IF EQL THEN YES

            3B            61     91  05B3   672 	CMPB	(R1),#^A/;/		; SEMI COLON

                          1F     12  05B6   673 	BNEQ	60$			; IF NEQ THEN DONE

                          50     D4  05B8   674 45$:	CLRL	R0			; SET UP ACCUM

                          51     D6  05BA   675 	INCL	R1			; PASS DOT

                       0E A4     B4  05BC   676 	CLRW	N.FVER(R4)		; SET UP VERSION ACCUM

            30            61     91  05BF   677 50$:	CMPB	(R1),#^A/0/		; LESS THAN ASCII 0

                          13     1F  05C2   678 	BLSSU	60$			; IF LSSU THEN DONE

            39            61     91  05C4   679 	CMPB	(R1),#^A/9/		; GTR THAN ASCII 9?

                          0E     1A  05C7   680 	BGTRU	60$			; IF SO THEN ALSO DONE

         0E A4            0A     A4  05C9   681 	MULW	#10,N.FVER(R4)		;

            81            30     83  05CD   682 	SUBB3	#^A/0/,(R1)+,R0		;

                          50         05D0       

         0E A4            50     A0  05D1   683 	ADDW	R0,N.FVER(R4)		; ACCUM RESULT

                          E8     11  05D5   684 	BRB	50$			;

                     01FC 8F     BA  05D7   685 60$:	POPR	#^M<R2,R3,R4,R5,R6,R7,R8>	;

                                 05  05DB   686 	RSB				;

RSXPARSE        - PARSE DIRECTIVE                                22-AUG-1978 05:10:10   VAX-11 MACRO X0.3-11               Page  16

06.0            RSX$BLDASCDEV - BUILD ASCII DEVICE NAME                                                                          (7)



                                     05DC   688 	.SBTTL	RSX$BLDASCDEV - BUILD ASCII DEVICE NAME

                                     05DC   689 ;++

                                     05DC   690 ; RSX$BLDASCDEV - BUILD ASCII DEVICE NAME

                                     05DC   691 ;

                                     05DC   692 ; FUNCTIONAL DESCRIPTION:

                                     05DC   693 ;

                                     05DC   694 ; THIS ROUTINE GIVEN A DEVICENAME AND UNIT, BUILDS AN ASCII STRING

                                     05DC   695 ; CORRESPONDING TO THE DEVICENAME AND UNIT.

                                     05DC   696 ;

                                     05DC   697 ; THIS IS AN OCTAL CONVERTION.

                                     05DC   698 ;

                                     05DC   699 ; INPUTS:

                                     05DC   700 ;

                                     05DC   701 ;	R0 = TWO CHARACTERS OF ASCII NAME

                                     05DC   702 ;	R1 = UNIT NUMBER

                                     05DC   703 ;	R3 = TARGET OF THE CONVERT

                                     05DC   704 ;

                                     05DC   705 ; OUTPUTS:

                                     05DC   706 ;

                                     05DC   707 ;	R3 = ADDRESS OF THE NEXT DESTINATION BYTE

                                     05DC   708 ;

                                     05DC   709 ;	R2,R4,R5,R6,R7 ARE PRESERVED.

                                     05DC   710 ;--

                                     05DC   711 RSX$BLDASCDEV::				; BUILD DEVICE NAME

                          34     BB  05DC   712 	PUSHR	#^M<R2,R4,R5>		;

            54         08 A3     9E  05DE   713 	MOVAB	8(R3),R4		; ADDRESS END OF STRING

            51            51     9A  05E2   714 	MOVZBL	R1,R1			; ASSURE OF ONLY BYTE

                          64     94  05E5   715 	CLRB	(R4)			; SET ASCIZ

                          52     D4  05E7   716 	CLRL	R2			; SET UP ACCUM

            51            0A     7B  05E9   717 10$:	EDIV	#10,R1,R1,R5		; GET REMAINDER

            55            51         05EC       

            55            30     81  05EE   718 	ADDB3	#^A/0/,R5,-(R4)		; INSERT

                          74         05F1       

                          51     D5  05F2   719 	TSTL	R1			; DONE?

                          F3     12  05F4   720 	BNEQ	10$			; CONTINUE

            74            50     B0  05F6   721 	MOVW	R0,-(R4)		; INSERT NAME

            54            53     C3  05F9   722 	SUBL3	R3,R4,R5		; CALC MOVE SIZE

                          55         05FC       

            08            55     C3  05FD   723 	SUBL3	R5,#8,R5		;

                          55         0600       

            64            55     28  0601   724 	MOVC3	R5,(R4),(R3)		; MOVE NAME BACK

                          63         0604       

                          34     BA  0605   725 	POPR	#^M<R2,R4,R5>		;

                                 05  0607   726 	RSB				;

RSXPARSE        - PARSE DIRECTIVE                                22-AUG-1978 05:10:10   VAX-11 MACRO X0.3-11               Page  17

06.0            RSX$BLDPHYDEV - BUILD PHYSICAL DEVICE NAME                                                                       (8)



                                     0608   728 	.SBTTL	RSX$BLDPHYDEV - BUILD PHYSICAL DEVICE NAME

                                     0608   729 ;++

                                     0608   730 ; RSX$BLDPHYDEV - BUILD PHYSICAL DEVICE NAME

                                     0608   731 ;

                                     0608   732 ; FUNCTIONAL DESCRIPTION:

                                     0608   733 ;

                                     0608   734 ; THIS ROUTINE GIVEN A DEVICENAME AND UNIT, BUILDS AN PHYSICAL DEVICENAME

                                     0608   735 ; CORRESPONDING TO THE INPUT DEVICENAME AND UNIT.

                                     0608   736 ; THE DEVICE NAME IS BUILT USING 2 ASCII CHARACTERS, A CONTROLLER AND

                                     0608   737 ; A UNIT ON THAT CONTROLLER. THE CONTROLLER IS THE RESULT OF AN INTEGER

                                     0608   738 ; DIVIDE OF THE UNIT BY 16.

                                     0608   739 ;

                                     0608   740 ; INPUTS:

                                     0608   741 ;

                                     0608   742 ;	R0 = TWO CHARACTERS OF ASCII NAME

                                     0608   743 ;	R1 = UNIT NUMBER

                                     0608   744 ;	R3 = TARGET OF THE CONVERT

                                     0608   745 ;

                                     0608   746 ; OUTPUTS:

                                     0608   747 ;

                                     0608   748 ;	R3 = ADDRESS OF THE NEXT DESTINATION BYTE

                                     0608   749 ;

                                     0608   750 ;	R2,R4,R5,R6,R7 ARE PRESERVED.

                                     0608   751 ;--

                                     0608   752 RSX$BLDPHYDEV::				; BUILD DEVICE NAME

                     0074 8F     BB  0608   753 	PUSHR	#^M<R2,R4,R5,R6>	;

            54         07 A3     9E  060C   754 	MOVAB	7(R3),R4		; ADDRESS END OF STRING

            51            51     9A  0610   755 	MOVZBL	R1,R1			; ASSURE OF ONLY BYTE

                          64     94  0613   756 	CLRB	(R4)			; SET ASCIZ

                          52     D4  0615   757 	CLRL	R2			; SET UP ACCUM

            51            10     7B  0617   758 	EDIV	#16,R1,R6,R1		; GET THE CONTROLLER INDEX

            51            56         061A       

            51            0A     7B  061C   759 10$:	EDIV	#10,R1,R1,R5		; GET REMAINDER

            55            51         061F       

            55            30     81  0621   760 	ADDB3	#^A/0/,R5,-(R4)		; INSERT

                          74         0624       

                          51     D5  0625   761 	TSTL	R1			; DONE?

                          F3     12  0627   762 	BNEQ	10$			; CONTINUE

            56         41 8F     81  0629   763 	ADDB3	#^A/A/,R6,-(R4)		; INSERT CONTROLLER

                          74         062D       

            74            50     B0  062E   764 	MOVW	R0,-(R4)		; INSERT NAME

            54            53     C3  0631   765 	SUBL3	R3,R4,R5		; CALC NAME SIZE

                          55         0634       

            07            55     C3  0635   766 	SUBL3	R5,#7,R5		;

                          55         0638       

            64            55     28  0639   767 	MOVC3	R5,(R4),(R3)		; MOVE NAME BACK

                          63         063C       

                     0074 8F     BA  063D   768 	POPR	#^M<R2,R4,R5,R6>	;

                                 05  0641   769 	RSB				;

RSXPARSE        - PARSE DIRECTIVE                                22-AUG-1978 05:10:10   VAX-11 MACRO X0.3-11               Page  18

06.0            RSX$PARSEDEV - PARSE DEVICE NAME                                                                                 (9)



                                     0642   771 	.SBTTL	RSX$PARSEDEV - PARSE DEVICE NAME

                                     0642   772 ;++

                                     0642   773 ; RSX$PARSEDEV - PARSE DEVICE NAME STRING INTO NAME/UNIT

                                     0642   774 ;

                                     0642   775 ; FUNCTIONAL DESCRIPTION:

                                     0642   776 ;

                                     0642   777 ; THIS ROUTINE, GIVEN AN ASCII DEVICE NAME STRING, RETURNS A

                                     0642   778 ; TWO CHARACTER NAME AND A UNIT NUMBER THAT CONTAINS A CONTROLLER

                                     0642   779 ; INDEX.

                                     0642   780 ;

                                     0642   781 ; INPUTS:

                                     0642   782 ;

                                     0642   783 ;	R5 = SIZE OF THE DEVICE NAME STRING

                                     0642   784 ;	R6 = ADDRESS OF THE DEVICE NAME STRING

                                     0642   785 ;

                                     0642   786 ; OUTPUTS:

                                     0642   787 ;

                                     0642   788 ;	R0 = DEVICE NAME

                                     0642   789 ;	R1 = UNIT

                                     0642   790 ;

                                     0642   791 ;	R2-R11 ARE PRESERVED.

                                     0642   792 ;

                                     0642   793 ;--

                                     0642   794 RSX$PARSEDEV::				; PARSE DEVICE NAME

                          0C     BB  0642   795 	PUSHR	#^M<R2,R3>		;

                          51     D4  0644   796 	CLRL	R1			; ASSUME UNIT 0

            53            01     D0  0646   797 	MOVL	#1,R3			; INITIALIZE MULTIPLIER

            52            6645   9E  0649   798 	MOVAB	(R6)[R5],R2		; ADDRESS END OF STRING

            02            55     91  064D   799 	CMPB	R5,#2			; 2 OR LESS CHARACTERS?

                          2B     1B  0650   800 	BLEQU	30$			; IF YES THEN DONE

            72            30     83  0652   801 10$:	SUBB3	#^A/0/,-(R2),R0		; GET FIRST BYTE

                          50         0655       

                          10     19  0656   802 	BLSS	20$			; IF LSS THEN END

            50            09     91  0658   803 	CMPB	#9,R0			; NUMERIC?

                          0B     1F  065B   804 	BLSSU	20$			; IF LSSU THEN NO

            50            53     C4  065D   805 	MULL	R3,R0			; MULTIPLY

            51            50     C0  0660   806 	ADDL	R0,R1			; ACCUM RESULT

            53            0A     C4  0663   807 	MULL	#10,R3			; CHANGE MULTIPLIER

                          EA     11  0666   808 	BRB	10$			; CONTINUE

            52            56     C3  0668   809 20$:	SUBL3	R6,R2,R0		; GET REMAINING SIZE

                          50         066B       

            50            02     D1  066C   810 	CMPL	#2,R0			; MORE THAN 2 REMAIN?

                          0C     1A  066F   811 	BGTRU	30$			; IF GEQU THEN NO CONTROLLER

            62         41 8F     83  0671   812 	SUBB3	#^A/A/,(R2),R0		; GET CONTROLLER INDEX

                          50         0675       

            50            04     78  0676   813 	ASHL	#4,R0,R0		; MULTIPLY BY 16

                          50         0679       

            51            50     C0  067A   814 	ADDL	R0,R1			; INSERT IN UNIT NUMBER

            50            66     3C  067D   815 30$:	MOVZWL	(R6),R0			; GET DEVICE NAME

                          0C     BA  0680   816 	POPR	#^M<R2,R3>			; 

                                 05  0682   817 	RSB

                                     0683   818 ;

                                     0683   819 	.END

RSXPARSE        - PARSE DIRECTIVE                                22-AUG-1978 05:10:10   VAX-11 MACRO X0.3-11               Page  19

SYMBOL TABLE                                                                                                                     (9)



$$MSG          = 00000000            FAB$B_BKS        0000003E            FAB$M_NAM      = 01000000            

...GBL         = 00000000            FAB$B_BLN        00000001            FAB$M_NEF      = 00000400            

...TPC         = 0000001E            FAB$B_DNS        00000035            FAB$M_NFS      = 00010000            

ACBC_CTLRCAST  = 00000002            FAB$B_FAC        00000016            FAB$M_NIL      = 00000020            

ACBC_FLOATAST  = 00000003            FAB$B_FNS        00000034            FAB$M_OFP      = 20000000            

ACBC_PWRAST    = 00000000            FAB$B_FSZ        0000003F            FAB$M_POS      = 00000100            

ACBC_RCVAST    = 00000001            FAB$B_ORG        0000001D            FAB$M_PPF      = 00040000            

ACBV_INPROG    = 00000001            FAB$B_RAT        0000001E            FAB$M_PPF_IND  = 00004000            

ACBV_PERM      = 00000000            FAB$B_RFM        0000001F            FAB$M_PPF_RAT  = 00003FC0            

ACBV_TYPE      = 00000008            FAB$B_RTV        0000001C            FAB$M_PRN      = 00000004            

ACB_FLAGS        0000000C            FAB$B_SHR        00000017            FAB$M_PUT      = 00000001            

ACB_LINK         00000000            FAB$C_BID      = 00000003            FAB$M_RCK      = 00800000            

ACB_UPC          0000000A            FAB$C_BLN        00000050            FAB$M_RWC      = 00000800            

ACB_UPRM         00000008            FAB$C_FIX      = 00000001            FAB$M_RWO      = 00000080            

ADR_HIGHLIM      00000004            FAB$C_HSH      = 00000030            FAB$M_SCF      = 00004000            

ADR_LOWLIM       00000000            FAB$C_IDX      = 00000020            FAB$M_SHRDEL   = 00000004            

ADR_SIZE         00000008            FAB$C_MAXRFM   = 00000003            FAB$M_SHRGET   = 00000002            

AP_NAME          00000004            FAB$C_REL      = 00000010            FAB$M_SHRPUT   = 00000001            

AST_PARAM        00000004            FAB$C_RFM_DFLT = 00000002            FAB$M_SHRUPD   = 00000008            

AST_PC           00000010            FAB$C_SEQ      = 00000000            FAB$M_SPL      = 00002000            

AST_PSL          00000014            FAB$C_UDF      = 00000000            FAB$M_SQO      = 00000040            

AST_R0           00000008            FAB$C_VAR      = 00000002            FAB$M_SUP      = 00000004            

AST_R1           0000000C            FAB$C_VFC      = 00000003            FAB$M_TEF      = 10000000            

BADPARAM         00000058 R     06   FAB$K_BLN        00000050            FAB$M_TMD      = 00000010            

BADPARAM2        00000111 R     06   FAB$L_ALQ        00000010            FAB$M_TMP      = 00000008            

BIT...         = 0000001A            FAB$L_CTX        00000018            FAB$M_TRN      = 00000010            

CH.AND         = 00000001            FAB$L_DEV        00000040            FAB$M_UFM      = 04000000            

COMMONFCS        0000017D R     06   FAB$L_DNA        00000030            FAB$M_UFO      = 00020000            

C_CANONPS      = 83C00000            FAB$L_FNA        0000002C            FAB$M_UPD      = 00000008            

C_RCVDSTR      = 44564352            FAB$L_FOP        00000004            FAB$M_UPI      = 00000040            

DEVICE           00000114 R     06   FAB$L_JNL        00000020            FAB$M_WCK      = 00000200            

DONE             00000465 R     06   FAB$L_MRN        00000038            FAB$S_ORG      = 00000004            

DPB_DD           00000008            FAB$L_NAM        00000028            FAB$S_PPF_RAT  = 00000008            

DPB_DEFA         00000006            FAB$L_SDC        00000044            FAB$V_BIO      = 00000005            

DPB_DFNB         00000006            FAB$L_STS        00000008            FAB$V_BLK      = 00000003            

DPB_DSPT         00000004            FAB$L_STV        0000000C            FAB$V_BRO      = 00000006            

DPB_FNB          0000000A            FAB$L_XAB        00000024            FAB$V_CBT      = 00000015            

DPB_LUN          00000002            FAB$M_BIO      = 00000020            FAB$V_CIF      = 00000019            

DPB_MODE         00000000            FAB$M_BLK      = 00000008            FAB$V_CR       = 00000001            

DPB_PRIM         00000004            FAB$M_BRO      = 00000040            FAB$V_CTG      = 00000014            

DPB_RETDIR       0000000C            FAB$M_CBT      = 00200000            FAB$V_DEL      = 00000002            

FA.APD         = 00000040            FAB$M_CIF      = 02000000            FAB$V_DFW      = 00000005            

FA.CRE         = 00000008            FAB$M_CR       = 00000002            FAB$V_DLT      = 0000000F            

FA.DLK         = 00000200            FAB$M_CTG      = 00100000            FAB$V_DMO      = 0000000C            

FA.ENB         = FFFF8000            FAB$M_DEL      = 00000004            FAB$V_ESC      = 0000001B            

FA.EXC         = 00000400            FAB$M_DFW      = 00000020            FAB$V_EXE      = 00000007            

FA.EXT         = 00000004            FAB$M_DLT      = 00008000            FAB$V_FTN      = 00000000            

FA.NSP         = 00000040            FAB$M_DMO      = 00001000            FAB$V_GET      = 00000001            

FA.POS         = 00001000            FAB$M_ESC      = 08000000            FAB$V_INP      = 00000013            

FA.RD          = 00000001            FAB$M_EXE      = 00000080            FAB$V_JNL      = 00000016            

FA.RWD         = 00000800            FAB$M_FTN      = 00000001            FAB$V_KFO      = 0000001E            

FA.SEQ         = 00004000            FAB$M_GET      = 00000002            FAB$V_MSE      = 00000004            

FA.SHR         = 00000020            FAB$M_INP      = 00080000            FAB$V_MXV      = 00000001            

FA.TMP         = 00000010            FAB$M_JNL      = 00400000            FAB$V_NAM      = 00000018            

FA.WCK         = 00002000            FAB$M_KFO      = 40000000            FAB$V_NEF      = 0000000A            

FA.WRT         = 00000002            FAB$M_MSE      = 00000010            FAB$V_NFS      = 00000010            

FAB$B_BID        00000000            FAB$M_MXV      = 00000002            FAB$V_NIL      = 00000005            

RSXPARSE        - PARSE DIRECTIVE                                22-AUG-1978 05:10:10   VAX-11 MACRO X0.3-11               Page  20

SYMBOL TABLE                                                                                                                     (9)



FAB$V_OFP      = 0000001D            FD.RAN         = 00000002            IE.ALN         = FFFFFFDE            

FAB$V_ORG      = 00000004            FD.REC         = 00000001            IE.AST         = FFFFFFB0            

FAB$V_POS      = 00000008            FD.RWM         = 00000001            IE.BAD         = FFFFFFFF            

FAB$V_PPF      = 00000012            FD.SDI         = 00000010            IE.BBE         = FFFFFFC8            

FAB$V_PPF_IND  = 0000000E            FD.SQD         = 00000020            IE.BCC         = FFFFFFBE            

FAB$V_PPF_RAT  = 00000006            FD.TTY         = 00000004            IE.BDI         = FFFFFFCC            

FAB$V_PRN      = 00000002            FD.WBH         = 00000002            IE.BDR         = FFFFFFCE            

FAB$V_PUT      = 00000000            FF.CHR         = 00000005            IE.BDV         = FFFFFFC9            

FAB$V_RCK      = 00000017            FF.NV          = 00000003            IE.BHD         = FFFFFFC0            

FAB$V_RWC      = 0000000B            FF.POE         = 00000002            IE.BLB         = FFFFFFBA            

FAB$V_RWO      = 00000007            FF.RWD         = 00000001            IE.BLK         = FFFFFFEC            

FAB$V_SCF      = 0000000E            FF.RWF         = 00000006            IE.BNM         = FFFFFFCA            

FAB$V_SHRDEL   = 00000002            FF.SPC         = 00000004            IE.BTF         = FFFFFFB4            

FAB$V_SHRGET   = 00000001            FNB              000000EE R     06   IE.BTP         = FFFFFFD5            

FAB$V_SHRPUT   = 00000000            FO.APD         = 00000046            IE.BVR         = FFFFFFC1            

FAB$V_SHRUPD   = 00000003            FO.MFY         = 00000002            IE.BYT         = FFFFFFED            

FAB$V_SPL      = 0000000D            FO.RD          = 00000001            IE.CKS         = FFFFFFE2            

FAB$V_SQO      = 00000006            FO.UPD         = 00000006            IE.CLO         = FFFFFFDA            

FAB$V_SUP      = 00000002            FO.WRT         = 0000000E            IE.CNR         = FFFFFFB7            

FAB$V_TEF      = 0000001C            FP_AP            00000008            IE.CON         = FFFFFFEA            

FAB$V_TMD      = 00000004            FP_FP            0000000C            IE.DAA         = FFFFFFF8            

FAB$V_TMP      = 00000003            FP_PC            00000010            IE.DAO         = FFFFFFF3            

FAB$V_TRN      = 00000004            FP_PSL           00000004            IE.DFU         = FFFFFFE8            

FAB$V_UFM      = 0000001A            FP_REGISTERS     00000014            IE.DNA         = FFFFFFF9            

FAB$V_UFO      = 00000011            GBL...         = 00000000            IE.DNR         = FFFFFFFD            

FAB$V_UPD      = 00000003            H.CSP            00000000            IE.DUN         = FFFFFFF7            

FAB$V_UPI      = 00000006            H.CUIC           00000008            IE.DUP         = FFFFFFC7            

FAB$V_WCK      = 00000009            H.DSW            00000026            IE.EOF         = FFFFFFF6            

FAB$W_BLS        0000003C            H.DUIC           0000000A            IE.EOT         = FFFFFFC2            

FAB$W_DEQ        00000014            H.EFLM           00000004            IE.EOV         = FFFFFFF5            

FAB$W_IFI        00000002            H.EFSV           00000020            IE.EXP         = FFFFFFB5            

FAB$W_MRS        00000036            H.FCS            00000028            IE.FEX         = FFFFFFCF            

FCB_ATTRIBS      0000007C            H.FORT           0000002A            IE.FHE         = FFFFFFC5            

FCB_FIB          0000004C            H.FPSA           00000022            IE.FLN         = FFFFFFAF            

FCB_FID          00000000            H.FPVA           0000001C            IE.FOP         = FFFFFFCB            

FCB_FNAME        00000014            H.GARD           0000003A            IE.HFU         = FFFFFFE4            

FCB_FNAMEDESC    0000000C            H.HDLN           00000002            IE.IES         = FFFFFFAE            

FCB_FNB          00000002            H.IPC            0000000E            IE.IFC         = FFFFFFFE            

FCB_PC           00000078            H.IPS            0000000C            IE.IFU         = FFFFFFE7            

FCB_RESULT       00000030            H.ISP            00000010            IE.ILL         = FFFFFFD6            

FCB_RESULTDESC   00000004            H.LUN            0000003E            IE.ISQ         = FFFFFFC3            

FCB_SIZE         000000B4            H.NLUN           0000003C            IE.LCK         = FFFFFFE5            

FD.BLK         = 00000008            H.NML            00000031            IE.MOD         = FFFFFFEB            

FD.CCL         = 00000002            H.ODVA           00000012            IE.NBF         = FFFFFFD9            

FD.COM         = 00002000            H.ODVL           00000014            IE.NBK         = FFFFFFD7            

FD.CR          = 00000002            H.OVLY           0000002C            IE.NDR         = FFFFFFB8            

FD.DIR         = 00000008            H.PFVA           0000001A            IE.NFI         = FFFFFFC4            

FD.F11         = 00004000            H.RCVA           0000001E            IE.NFW         = FFFFFFBB            

FD.FTN         = 00000001            H.RRVA           00000032            IE.NLK         = FFFFFFB1            

FD.INS         = 00000008            H.SPRI           00000030            IE.NLN         = FFFFFFDB            

FD.ISP         = 00000400            H.TKVA           00000016            IE.NNC         = FFFFFFB3            

FD.MNT         = FFFF8000            H.TKVL           00000018            IE.NNL         = FFFFFFB2            

FD.OSP         = 00000800            H.VEXT           0000002E            IE.NNN         = FFFFFFBC            

FD.PLC         = 00000004            H.WND            00000024            IE.NOD         = FFFFFFE9            

FD.PRN         = 00000004            IE.2DV         = FFFFFFD0            IE.NSF         = FFFFFFE6            

FD.PSE         = 00001000            IE.ABO         = FFFFFFF1            IE.NST         = FFFFFFB0            

FD.RAH         = 00000001            IE.ALC         = FFFFFFAC            IE.OFL         = FFFFFFBF            

RSXPARSE        - PARSE DIRECTIVE                                22-AUG-1978 05:10:10   VAX-11 MACRO X0.3-11               Page  21

SYMBOL TABLE                                                                                                                     (9)



IE.ONP         = FFFFFFFB            I_FLOATERR       000001AC            N.DVNM         = 0000001A            

IE.OVR         = FFFFFFEE            I_FLOATTMP       000001B8            N.FID          = 00000000            

IE.PES         = FFFFFFAD            I_GARD           000000EC            N.FNAM         = 00000006            

IE.PRI         = FFFFFFF0            I_HIGHEFN        0000016C            N.FTYP         = 0000000C            

IE.RAC         = FFFFFFD4            I_HIGHSIZE       000000F4            N.FVER         = 0000000E            

IE.RAT         = FFFFFFD3            I_IMAGEVBN       000000F8            N.NEXT         = 00000012            

IE.RBG         = FFFFFFD8            I_INISIZE        000000F0            N.STAT         = 00000010            

IE.RCN         = FFFFFFD2            I_LENGTH         000001F0            N.UNIT         = 0000001C            

IE.RER         = FFFFFFE0            I_LOGNAME        000000E0            NAM$B_BID        00000000            

IE.RNM         = FFFFFFCD            I_LUT            00000168            NAM$B_BLN        00000001            

IE.RSU         = FFFFFFEF            I_NLUN           00000164            NAM$B_CURLVL     00000038            

IE.SNC         = FFFFFFDD            I_PC             00000020            NAM$B_ESL        0000000B            

IE.SPC         = FFFFFFFA            I_PPFINDEX       00000162            NAM$B_ESS        0000000A            

IE.SQC         = FFFFFFDC            I_PROCNAME       0000014C            NAM$B_RSL        00000003            

IE.SRE         = FFFFFFF2            I_PS             00000024            NAM$B_RSS        00000002            

IE.STK         = FFFFFFC6            I_PWRAST         000001A0            NAM$C_BID      = 00000002            

IE.TMM         = FFFFFFB9            I_R0             00000000            NAM$C_BLN        00000038            

IE.TMO         = FFFFFFB6            I_R1             00000004            NAM$C_BLN_DIRWC  00000050            

IE.ULK         = FFFFFFAB            I_R2             00000008            NAM$C_DVI      = 00000010            

IE.VER         = FFFFFFFC            I_R3             0000000C            NAM$C_MAXRSS   = 00000080            

IE.WAC         = FFFFFFE3            I_R4             00000010            NAM$C_MAXRSSLCL= 00000060            

IE.WAT         = FFFFFFE1            I_R5             00000014            NAM$K_BLN        00000038            

IE.WCK         = FFFFFFAA            I_R6             00000018            NAM$K_BLN_DIRWC  00000050            

IE.WER         = FFFFFFDF            I_RAD50NAME      00000148            NAM$L_DIRWCC1    00000040            

IE.WLK         = FFFFFFF4            I_RCVAST         0000019C            NAM$L_DIRWCC2    00000044            

IS.BV          = 00000005            I_RCVMAIL        00000160            NAM$L_DIRWCC3    00000048            

IS.CC          = 00000301            I_RUNFLAGS       0000018C            NAM$L_DIRWCC4    0000004C            

IS.CR          = 00000D01            I_SCRATCH        00000028            NAM$L_DWC        00000038            

IS.EOT         = 00000401            I_SSTVEC         00000194            NAM$L_ESA        0000000C            

IS.ESC         = 00001B01            I_SSTVECL        00000196            NAM$L_FNB        00000034            

IS.ESQ         = 00009B01            I_STATE          00000170            NAM$L_RLF        00000010            

IS.PES         = 00008001            I_TYPE           0000001C            NAM$L_RSA        00000004            

IS.PND         = 00000000            I_UIC            0000013C            NAM$L_WCC        00000030            

IS.RDD         = 00000002            I_WAIT           00000178            NAM$M_DIR_LVLS = 00E00000            

IS.SUC         = 00000001            I_WAITSAVE       00000180            NAM$M_EXP_DEV  = 00000080            

IS.TAB         = 00000901            LUTC_CR        = 00000005            NAM$M_EXP_DIR  = 00000040            

IS.TMO         = 00000002            LUTC_DISK      = 00000002            NAM$M_EXP_NAME = 00000004            

I_ADR0           000000FC            LUTC_LP        = 00000004            NAM$M_EXP_TYPE = 00000002            

I_ASCIINAME      00000140            LUTC_RMS       = 00000000            NAM$M_EXP_VER  = 00000001            

I_ASTPOOL        000000D0            LUTC_TAPE      = 00000003            NAM$M_GRP_MBR  = 00080000            

I_ASTQUEUE       000000C8            LUTC_TRM       = 00000001            NAM$M_HIGHVER  = 00008000            

I_BAILOUTFP      00000188            LUTV_CTRLC     = 00000002            NAM$M_LOWVER   = 00004000            

I_CMDROUT        000000E8            LUTV_CTRLO     = 00000000            NAM$M_NODE     = 00020000            

I_CURAST         00000198            LUTV_PRM       = 00000003            NAM$M_PPF      = 00010000            

I_DEBVEC         00000190            LUT_CHAN         0000000C            NAM$M_QUOTED   = 00040000            

I_DEBVECL        00000192            LUT_CHAR         00000012            NAM$M_WILDCARD = 00000100            

I_FCBPOOL        000000D8            LUT_CTRLC        00000032            NAM$M_WILD_DIR = 00100000            

I_FCC            000001B4            LUT_FLAGS        0000000A            NAM$M_WILD_GRP = 01000000            

I_FLOATA0        000001C0            LUT_INFONAME     0000002E            NAM$M_WILD_MBR = 02000000            

I_FLOATA1        000001C8            LUT_INFOUNIT     00000030            NAM$M_WILD_NAME= 00000020            

I_FLOATA2        000001D0            LUT_LINK         00000000            NAM$M_WILD_SFD1= 02000000            

I_FLOATA3        000001D8            LUT_REALNAME     0000001E            NAM$M_WILD_SFD2= 04000000            

I_FLOATA4        000001E0            LUT_REF          00000008            NAM$M_WILD_SFD3= 08000000            

I_FLOATA5        000001E8            LUT_RSXNAME      00000010            NAM$M_WILD_SFD4= 10000000            

I_FLOATADR       000001B0            LUT_SIZE         00000036            NAM$M_WILD_SFD5= 20000000            

I_FLOATAST       000001A4            LUT_TYPE         00000016            NAM$M_WILD_SFD6= 40000000            

I_FLOATCSR       000001A8            N.DID          = 00000014            NAM$M_WILD_SFD7= 80000000            

RSXPARSE        - PARSE DIRECTIVE                                22-AUG-1978 05:10:10   VAX-11 MACRO X0.3-11               Page  22

SYMBOL TABLE                                                                                                                     (9)



NAM$M_WILD_TYPE= 00000010            PSL_FU         = 00000006            RSX$_LOADERROR = 0006807C            

NAM$M_WILD_UFD = 01000000            PSL_TBIT       = 00000004            RSX$_NOCOMM    = 00068094            

NAM$M_WILD_VER = 00000008            P_FAB            00000000            RSX$_NONRSXEMT = 0006801C            

NAM$S_DIR_LVLS = 00000003            P_FNAME          00000050            RSX$_NOPMD     = 00068332            

NAM$T_DVI        00000014            P_NAMBLK         000000D0            RSX$_NOSUCHDEV = 00068322            

NAM$V_DIR_LVLS = 00000015            P_SIZE           00000108            RSX$_NOTSKIMG  = 00068064            

NAM$V_EXP_DEV  = 00000007            QIOV_FILES     = 00000000            RSX$_ODDADDR   = 00068034            

NAM$V_EXP_DIR  = 00000006            QIO_FLAGS        0000001A            RSX$_PMD       = 0006832A            

NAM$V_EXP_NAME = 00000002            QIO_IOSB         0000000E            RSX$_RCVMBXSIZ = 0000012C            

NAM$V_EXP_TYPE = 00000001            QIO_LUT          00000016            RSX$_REGMSG    = 0006808C            

NAM$V_EXP_VER  = 00000000            QIO_SECONDBLK    0000001C            RSX$_RESERVED  = 00068004            

NAM$V_GRP_MBR  = 00000013            QIO_SIZE         00000020            RSX$_TBIT      = 0006803C            

NAM$V_HIGHVER  = 0000000F            R.FIX          = 00000001            RSX$_TRAP      = 00068024            

NAM$V_LOWVER   = 0000000E            R.SEQ          = 00000003            RSX$_VERIFYCMD = 00068648            

NAM$V_NODE     = 00000011            R.VAR          = 00000002            S.FNAM         = 00000006            

NAM$V_PPF      = 00000010            REPLACE_DEVICE   00000477 R     06   S.FNB          = 0000001E            

NAM$V_QUOTED   = 00000012            RETERROR         00000474 R     06   S.FNBW         = 0000000F            

NAM$V_WILDCARD = 00000008            RMS              00000066 R     06   S.FNTY         = 00000004            

NAM$V_WILD_DIR = 00000014            RMS$_CHN         ********   X   05   S.FTYP         = 00000002            

NAM$V_WILD_GRP = 00000018            RMS$_DEV         ********   X   05   S.NFEN         = 00000010            

NAM$V_WILD_MBR = 00000019            RMS$_DIR         ********   X   05   SV_ASTLVL        00000004            

NAM$V_WILD_NAME= 00000005            RMS$_DNF         ********   X   05   SV_DCL           00000002            

NAM$V_WILD_SFD1= 00000019            RMS$_DNR         ********   X   05   SV_FLOATAST      00000009            

NAM$V_WILD_SFD2= 0000001A            RMS$_FNF         ********   X   05   SV_NOAST         00000003            

NAM$V_WILD_SFD3= 0000001B            RMS$_FNM         ********   X   05   SV_PENDWAIT      00000005            

NAM$V_WILD_SFD4= 0000001C            RMS$_LNE         ********   X   05   SV_PWRAST        00000008            

NAM$V_WILD_SFD5= 0000001D            RMS$_SYN         ********   X   05   SV_RCVAST        00000007            

NAM$V_WILD_SFD6= 0000001E            RMS$_TYP         ********   X   05   SV_RESTORE       00000000            

NAM$V_WILD_SFD7= 0000001F            RMS$_VER         ********   X   05   SV_TRANSLATE     00000001            

NAM$V_WILD_TYPE= 00000004            RSX$ALLOCATE     ********   X   06   SV_WAIT          00000006            

NAM$V_WILD_UFD = 00000018            RSX$ASCR501      ********   X   06   SYS$PARSE        ********   X   06   

NAM$V_WILD_VER = 00000003            RSX$ASCR503      ********   X   06   W.BATT           00000006            

NAM$W_DID        0000002A            RSX$BLDASCDEV    000005DC RG    06   W.BFPD           0000000C            

NAM$W_DID_NUM    0000002A            RSX$BLDFNAME     0000053B RG    06   W.BHVR           00000004            

NAM$W_DID_RVN    0000002E            RSX$BLDPHYDEV    00000608 RG    06   W.BLGH           00000010            

NAM$W_DID_SEQ    0000002C            RSX$C_SUBSYSTEM= 00000006            W.BLPD           0000000E            

NAM$W_FID        00000024            RSX$DEALLOCATE   ********   X   06   W.BLVR           00000002            

NAM$W_FID_NUM    00000024            RSX$INTERNEXIT   ********   X   06   W.BNPD           0000000D            

NAM$W_FID_RVN    00000028            RSX$PARS         00000000 RG    06   W.BOFF           0000000A            

NAM$W_FID_SEQ    00000026            RSX$PARSEDEV     00000642 RG    06   W.BPCB           00000000            

NAM$W_PRV_DID    0000003A            RSX$R50CVT1      ********   X   06   W.BSIZ           00000008            

NB.DEV         = 00000080            RSX$R50CVT3      ********   X   06   

NB.DIR         = 00000040            RSX$RETFNAME     00000580 RG    06   

NB.NAM         = 00000004            RSX$SRCHDEV      ********   X   06   

NB.SD1         = 00000100            RSX$SRCHDEV_ASC  ********   X   06   

NB.SD2         = 00000200            RSX$SRCHDEV_BIN  ********   X   06   

NB.SNM         = 00000020            RSX$_ACCVIO    = 00068044            

NB.STP         = 00000010            RSX$_BADLIBREF = 0006806C            

NB.SVR         = 00000008            RSX$_BADSTACK  = 0006804C            

NB.TYP         = 00000002            RSX$_BREAK     = 0006800C            

NB.VER         = 00000001            RSX$_EXITSTATUS= 00068640            

NORMAL           00000114 R     06   RSX$_EXTERNABRT= 0006805C            

PARSE            00000214 R     06   RSX$_ILLINST   = 0006802C            

PARSERRORS       00000000 R     05   RSX$_IMAGETERM = 00068084            

PSL_CC         = 00000000            RSX$_INSFDYNMEM= 00068054            

PSL_CM         = 0000001F            RSX$_IOT       = 00068014            

PSL_FPD        = 0000001B            RSX$_LIBNOTFND = 00068074            

RSXPARSE        - PARSE DIRECTIVE                                22-AUG-1978 05:10:10   VAX-11 MACRO X0.3-11               Page  23

PROGRAM SECTION SYNOPSIS                                                                                                         (9)







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  

..ABS.           00000042      02     NOPIC   USR   CON   ABS   LCL NOSHR   EXE   RD    WRT BYTE  

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

RSXDEF           000001F4      04     NOPIC   USR   CON   ABS   LCL NOSHR   EXE   RD    WRT BYTE  

RSXPURE          00000022      05       PIC   USR   CON   REL   LCL   SHR   EXE   RD  NOWRT LONG  

RSXCODE          00000683      06       PIC   USR   CON   REL   LCL   SHR   EXE   RD  NOWRT BYTE  





THERE WERE NO ERRORS OR WARNINGS.

8982. BYTES LEFT IN FREE MEMORY POOL.

24. BYTES OF RECLAIMED MEMORY.

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

37 MLB DIR RDS - 835 GETS TO DEFINE 27 MACROS. 53 INTER. FILE WRITES. 

