RSXPARSE        - PARSE DIRECTIVE                                22-AUG-1978 00:25:12   VAX-11 MACRO X0.3-11               Page   0

TABLE OF CONTENTS   



   (2)     178  RSX$PARS - RSX11M PARSE DIRECTIVE

   (4)     546  REPLACE_DEVICE - REPLACE DEVICE NAME ON STRING

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

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

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

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

   (9)     810  RSX$PARSEDEV - PARSE DEVICE NAME

   (10)    856  RSX$MAPDEVNAM - MAP STARLET DEVICE NAME

   (11)    932  RSX$TRNLOGNAM - TRANSLATE LOGICAL NAME 

RSXPARSE        - PARSE DIRECTIVE                                22-AUG-1978 00:25:12   VAX-11 MACRO X0.3-11               Page   1

04.0                                                                                                                             (1)



                                     0000     1 	.TITLE	RSXPARSE - PARSE DIRECTIVE

                                     0000     2 	.IDENT	/04.0/

                                     0000     3 ; COPYRIGHT (C) 1977

                                     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 ;	STARLET 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 ;

                                 000001F0    52 	.PSECT	RSXDEF,ABS

                           00000000  01F0    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 00:25:12   VAX-11 MACRO X0.3-11               Page   2

04.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,NOEXE,NOWRT

                                     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  

                                 00000000    87 	.PSECT	RSXCODE,NOWRT

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

04.0            RSX$PARS - RSX11M PARSE DIRECTIVE                                                                                (2)



                                     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 STARLET RSX AME TO GIVE THE RSX

                                     0000    96 ; IMAGE WHO USES THE STARLET 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 ;

                                     0010   145 ; SET UP THE BLOCK

RSXPARSE        - PARSE DIRECTIVE                                22-AUG-1978 00:25:12   VAX-11 MACRO X0.3-11               Page   4

04.0            RSX$PARS - RSX11M PARSE DIRECTIVE                                                                                (2)



                                     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         08 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:

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

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

                                     0067   165 ;

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

                                     0067   167 ;

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

                          21     13  006B   169 	BEQL	50$			; IF EQL THEN NONE

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

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

                          16     13  0076   172 	BEQL	50$			; IF EQL THEN NONE

                          DE     19  0078   173 	BLSS	BADPARAM		; IF LSS THEN ERROR

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

                          033C   30  007E   175 	BSBW	REPLACE_DEVICE		; REPLACE DEVICE NAME ON STRING

            50            6A     D0  0081   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

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

                       50 A8         008C       

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

         04 AA         08 AA     9E  0090   180 	MOVAB	I_SCRATCH+8(R10),I_SCRATCH+4(R10);

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

                          1C     13  0099   182 	BEQL	60$			; IF EQL THEN NONE

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

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

                          11     13  00A4   185 	BEQL	60$			; IF EQL THEN NONE

                          B0     19  00A6   186 	BLSS	BADPARAM		;

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

                          030E   30  00AC   188 	BSBW	REPLACE_DEVICE		; REPLACE DEVICE PART OF STRING

         35 A8            6A     90  00AF   189 	MOVB	I_SCRATCH(R10),FAB$B_DNS(R8); INSERT STRING SIZE

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

                          2F         00B6       

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

                          29     13  00BB   192 	BEQL	80$			; IF EQL THEN NONE

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

                          22     1A  00C2   194 	BGTRU	80$			; IF GTR THEN YES

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

            56         20 A0     9A  00CA   196 	MOVZBL	LUT_REALNAME(R0),R6	; GET THE SIZE

                          56     D6  00CE   197 	INCL	R6			; PASS COLON TOO

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

RSXPARSE        - PARSE DIRECTIVE                                22-AUG-1978 00:25:12   VAX-11 MACRO X0.3-11               Page   5

04.0            RSX$PARS - RSX11M PARSE DIRECTIVE                                                                                (2)



                          82     19  00D4   199 	BLSS	BADPARAM		; IF LSS THEN ERROR

            57         21 A0     9E  00D6   200 	MOVAB	LUT_REALNAME+1(R0),R7	; GET ADDRESS

         04 BA            6A     28  00DA   201 	MOVC3	I_SCRATCH(R10),@I_SCRATCH+4(R10),I_SCRATCH+8(R10)[R6]

                       08 AA46       00DE       

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

                       08 AA         00E4       

                          012B   31  00E6   203 80$:	BRW	PARSE			; PARSE

                                     00E9   204 ;

                                     00E9   205 ; FNB MODE - USE DFNB FILE NAME FOR PRIMARY STRING

                                     00E9   206 ;

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

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

                          16     13  00F1   209 	BEQL	10$			; IF EQL THEN NONE

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

                          57     DD  00F9   211 	PUSHL	R7			; SAVE START ADDRESS

            54         06 A4     9E  00FB   212 	MOVAB	N.FNAM(R4),R4		;

                          FEFE'  30  00FF   213 	BSBW	RSX$R50CVT3		; CONVERT

            57            8E     C2  0102   214 	SUBL	(SP)+,R7		; CALC SIZE

         34 A8            57     90  0105   215 	MOVB	R7,FAB$B_FNS(R8)	;

                          006A   31  0109   216 10$:	BRW	COMMONFCS		; CONTINUE IN COMMON

                                     010C   217 ;

                                     010C   218 ; NORMAL MODE PARSE FOR FCS-11

                                     010C   219 ;

                                     010C   220 ; PRIMARY STRING = DSPT-DEV'DSPT-DIR'DSPT-FILENAME

                                     010C   221 ; DEFAULT NAME = DFNB-OR-LUN-DEVICE'DEF-DIR'DFNB-FILENAME

                                     010C   222 ;

                                     010C   223 ; RETURNS FNB AND DEFAULT DIRECTORY STRING

                                     010C   224 ;

                                     010C   225 BADPARAM2:				;

                          FF49   31  010C   226 	BRW	BADPARAM

                                     010F   227 DEVICE:					; ALSO DEVICE

                                     010F   228 NORMAL:					; NORMAL MODE

            53         50 A8     9E  010F   229 	MOVAB	P_FNAME(R8),R3		;

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

                          5D     13  0117   231 	BEQL	COMMONFCS		; IF EQL THEN NONE SPECIFIED

                                     0119   232 	IFNORD	#12,(R7),BADPARAM2	; BR IF ACCESS VIOLATION

            56            67     98  011F   233 	CVTBL	(R7),R6			; GET SIGNED SIZE

                          29     13  0122   234 	BEQL	5$			; IF EQL THEN NONE

                          E6     19  0124   235 	BLSS	BADPARAM2		; IF LSS THEN ERROR

            57         02 A7     3C  0126   236 	MOVZWL	2(R7),R7		; ADDRESS STRING

                                     012A   237 	IFNORD	R6,(R7),BADPARAM2	; IF NO READ THEN PADPARAM

                          028A   30  0130   238 	BSBW	REPLACE_DEVICE		; MAP TO RSX LOGICAL NAMES

         34 A8            6A     90  0133   239 	MOVB	I_SCRATCH(R10),FAB$B_FNS(R8); MOVE SIZE TO FAB

                          D3     19  0137   240 	BLSS	BADPARAM2		; IF SIGNED THEN ERROR

         04 BA            6A     28  0139   241 	MOVC3	I_SCRATCH(R10),@I_SCRATCH+4(R10),P_FNAME(R8); MOVE DEVICE NAME

                       50 A8         013D       

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

                          08     13  0143   243 	BEQL	5$			; IF EQL THEN YES

                       34 A8     96  0145   244 	INCB	FAB$B_FNS(R8)		; ADJUST SIZE

                          C2     19  0148   245 	BLSS	BADPARAM2		;

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

            56            03     9A  014D   247 5$:	MOVZBL	#3,R6			; SET UP LOOP COUNT

            57         04 A9     3C  0150   248 	MOVZWL	DPB_DSPT(R9),R7		; ADDRESS DATA

                          1B     11  0154   249 	BRB	15$

            51            67     98  0156   250 10$:	CVTBL	(R7),R1			; GET THE SIZE

                          16     13  0159   251 	BEQL	15$			; IF EQL THEN NONE

                          AF     19  015B   252 	BLSS	BADPARAM2		; IF LSS THEN ERROR

RSXPARSE        - PARSE DIRECTIVE                                22-AUG-1978 00:25:12   VAX-11 MACRO X0.3-11               Page   6

04.0            RSX$PARS - RSX11M PARSE DIRECTIVE                                                                                (2)



         34 A8            51     80  015D   253 	ADDB	R1,FAB$B_FNS(R8)	; ADJUST SIZE

                          A9     19  0161   254 	BLSS	BADPARAM2		; IF SIGNED THEN ERROR

            52         02 A7     3C  0163   255 	MOVZWL	2(R7),R2		; GET ADDRESS

                                     0167   256 	IFNORD	R1,(R2),BADPARAM2	; BR IF ACCESS VIOLATION

            62            51     28  016D   257 	MOVC3	R1,(R2),(R3)		; COPY STRING

                          63         0170       

                          87     D5  0171   258 15$:	TSTL	(R7)+			;

            E0            56     F5  0173   259 	SOBGTR	R6,10$			; CONTINUE

                                     0176   260 ;

                                     0176   261 ; COMMON ENTRY FOR FCS-11 MODES

                                     0176   262 ;

                                     0176   263 COMMONFCS:

            53         08 AA     9E  0176   264 	MOVAB	I_SCRATCH+8(R10),R3	; ADDRESS DEFAULT NAME

            57         06 A9     3C  017A   265 	MOVZWL	DPB_DFNB(R9),R7		; ADDRESS DFNB

                          0C     13  017E   266 	BEQL	10$			; IF EQL THEN NONE

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

            50         1A A7     B0  0186   268 	MOVW	N.DVNM(R7),R0		; GET NAME OF DEVICE

                          1A     12  018A   269 	BNEQ	20$			; IF NEQ THEN SPECIFIED

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

                          37     13  0190   271 	BEQL	35$			; IF EQL THEN NONE

       0140 CA            56     B1  0192   272 	CMPW	R6,I_NLUN(R10)		; IN RANGE?

                          30     1A  0197   273 	BGTRU	35$			; IF GTRU THEN NO

            56       0144 DA46   D0  0199   274 	MOVL	@I_LUT(R10)[R6],R6	; GET LUT ENTRY FOR LUN

                          28     13  019F   275 	BEQL	35$			; IF EQL THEN NOT ASSIGNED

                          13     11  01A1   276 	BRB	25$			; CONTINUE

                          FEB2   31  01A3   277 15$:	BRW	BADPARAM		;

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

         04 AA            6A     9E  01AA   279 	MOVAB	I_SCRATCH(R10),I_SCRATCH+4(R10); SET DEV/UNIT MATCH

            6A            01     9A  01AE   280 	MOVZBL	#1,I_SCRATCH(R10)	; SET ONE CHARACTER

                          FE4C'  30  01B1   281 	BSBW	RSX$SEARCHDEV		; LOOK FOR LOGICAL NAME MATCH

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

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

                          50     D6  01BA   284 	INCL	R0			; MOVE COLON ALSO

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

                          63         01C0       

                          06     11  01C1   286 	BRB	35$			; CONTINUE

                          0343   30  01C3   287 30$:	BSBW	RSX$BLDASCDEV		; BUILD THE DEVICE NAME

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

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

                          50         01CD       

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

                          CF     19  01D2   291 	BLSS	15$			; IF LSS THEN ERROR

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

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

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

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

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

                          BC     19  01E5   297 	BLSS	15$			; IF LSS THEN ERROR

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

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

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

                          AC     19  01F5   301 	BLSS	15$			; IF RESULT SIGNED THEN ERROR

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

                          63         01FA       

                                     01FB   303 ;

                                     01FB   304 ; INSERT FILE NAME AND VERSION

                                     01FB   305 ;

RSXPARSE        - PARSE DIRECTIVE                                22-AUG-1978 00:25:12   VAX-11 MACRO X0.3-11               Page   7

04.0            RSX$PARS - RSX11M PARSE DIRECTIVE                                                                                (2)



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

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

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

                          0262   30  0203   309 	BSBW	RSX$BLDFNAME		; CONSTRUCT FILENAME

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

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

                          94     19  020D   312 	BLSS	15$			; IF LSS THEN ERROR

                          03     11  020F   313 	BRB	PARSE			; CONTINUE

                          FE44   31  0211   314 50$:	BRW	BADPARAM		; 

RSXPARSE        - PARSE DIRECTIVE                                22-AUG-1978 00:25:12   VAX-11 MACRO X0.3-11               Page   8

04.0            RSX$PARS - RSX11M PARSE DIRECTIVE                                                                                (3)



                                     0214   316 	.ENABL	LSB

                                     0214   317 ;

                                     0214   318 ; PARSE THE STRING

                                     0214   319 ;

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

                          58     DD  0216   321 	PUSHL	R8			;

   00000000'9F            03     FB  0218   322 	CALLS	#3,@#SYS$PARSE		;

                          50     DD  021F   323 	PUSHL	R0			; SAVE STATUS

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

         04 AA            57     D0  0225   325 	MOVL	R7,I_SCRATCH+4(R10)	;

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

            56            6A     D0  022E   327 	MOVL	I_SCRATCH(R10),R6	; GET SIZE BACK AND TEST

                          46     13  0231   328 	BEQL	100$			; IF EQL THEN NONE

            43            50     E8  0233   329 	BLBS	R0,100$			; BR IF NO PARSE ERROR

                          0184   30  0236   330 	BSBW	REPLACE_DEVICE		; REPLACE THE DEVICE NAME

            53            01     E1  0239   331 	BBC	#1,R3,100$		; BR IF NO DEVICE FOUND

                          3C         023C       

            53            00     E1  023D   332 	BBC	#0,R3,100$		; BR IF NO CHANGE

                          38         0240       

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

                       35 A8     94  0245   334 	CLRB	FAB$B_DNS(R8)		; SET NO DEFAULT

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

         5A A8         7F 8F     90  024E   336 	MOVB	#127,P_FNAME+NAM$B_ESS(R8);

         34 A8            6A     90  0253   337 	MOVB	I_SCRATCH(R10),FAB$B_FNS(R8)

         2C A8         04 AA     D0  0257   338 	MOVL	I_SCRATCH+4(R10),FAB$L_FNA(R8)

                          7E     7C  025C   339 	CLRQ	-(SP)

                          58     DD  025E   340 	PUSHL	R8

   00000000'9F            03     FB  0260   341 	CALLS	#3,@#SYS$PARSE		; PARSE THE STRING

                     0104 C8   8ED0  0267   342 	POPL	P_NAMBLK+NAM$L_FNB(R8)	; RESTORE STATUS BITS

            6E            50     D0  026C   343 	MOVL	R0,(SP)			; SAVE STATUS

         04 AA         50 A8     9E  026F   344 	MOVAB	P_FNAME(R8),I_SCRATCH+4(R10); INSERT SECOND RESULT'S STRING

            6A       00DB C8     9A  0274   345 	MOVZBL	P_NAMBLK+NAM$B_ESL(R8),I_SCRATCH(R10)

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

                          50   8ED0  027E   347 	POPL	R0

            18            50     E8  0281   348 	BLBS	R0,125$			; IF LOW SET THEN NO ERROR

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

       0188 CA            01     A8  0289   350 	BISW	#1,I_PS(R10)		;

            56            81     98  028E   351 110$:	CVTBL	(R1)+,R6

                          09     13  0291   352 	BEQL	125$			; IF EQL THEN DEFAULT ERROR

            81            50     B1  0293   353 	CMPW	R0,(R1)+		; ERROR MATCH?

                          F6     12  0296   354 	BNEQ	110$			; IF NEQ THEN CONTINUE

         26 AB            56     9B  0298   355 	MOVZBW	R6,H.DSW(R11)		; INSERT ERROR

                                     029C   356 125$:

         04 BA         5F 8F     91  029C   357 	CMPB	#^A/_/,@I_SCRATCH+4(R10); START WITH UNDERSCORE?

                          07     12  02A1   358 	BNEQ	126$			; IF NEQ THEN NO

                          6A     D7  02A3   359 	DECL	I_SCRATCH(R10)		; ADJUST SIZE AND ADDRESS

                       04 AA     D6  02A5   360 	INCL	I_SCRATCH+4(R10)	;

                          F2     11  02A8   361 	BRB	125$			;

            56            6A     7D  02AA   362 126$:	MOVQ	I_SCRATCH(R10),R6	; PARSE STRING FOR RSX FORM OF DEVICE/UNIT

            56            3A     3A  02AD   363 	LOCC	#^A/:/,R6,(R7)		;

                          67         02B0       

                          25     13  02B1   364 	BEQL	130$			; IF EQL THEN NONE

                          6A     DD  02B3   365 	PUSHL	I_SCRATCH(R10)		; SAVE CURRENT SIZE

            6A            50     C2  02B5   366 	SUBL	R0,I_SCRATCH(R10)	; SET NAME SIZE

                          50     7C  02B8   367 	CLRQ	R0			; NO NAME OR UNIT

                          FD43'  30  02BA   368 	BSBW	RSX$SEARCHDEV		; SEARCH FOR DEVICE

                          0A     12  02BD   369 	BNEQ	127$			; IF NEQ THEN NOT FOUND

RSXPARSE        - PARSE DIRECTIVE                                22-AUG-1978 00:25:12   VAX-11 MACRO X0.3-11               Page   9

04.0            RSX$PARS - RSX11M PARSE DIRECTIVE                                                                                (3)



            50         30 A6     3C  02BF   370 	MOVZWL	LUT_INFONAME(R6),R0	; GET NAME AND UNIT

            51         32 A6     9A  02C3   371 	MOVZBL	LUT_INFOUNIT(R6),R1	;

                          06     11  02C7   372 	BRB	128$			; CONTINUE

            55            6A     7D  02C9   373 127$:	MOVQ	I_SCRATCH(R10),R5	; GET SIZE AND ADDRESS

                          02A0   30  02CC   374 	BSBW	RSX$PARSEDEV		; FIND THE NAME/UNIT

            56            8E     D0  02CF   375 128$:	MOVL	(SP)+,R6 		; RESTORE REMAINDER SIZE AND ADDRESS

            6A            56     D0  02D2   376 	MOVL	R6,I_SCRATCH(R10)	; RESTORE ORIG SIZE

            68            50     7D  02D5   377 	MOVQ	R0,(R8)			; SAVE IN USED FAB

            03            69     B1  02D8   378 130$:	CMPW	DPB_MODE(R9),#3		; RMS OR FCS MODE

                          23     13  02DB   379 	BEQL	150$			; CONTINUE

                                     02DD   380 ;

                                     02DD   381 ; MOVE ONLY DIRECTORY IN FCS MODES

                                     02DD   382 ;

            56         5B 8F     3A  02DD   383 135$:	LOCC	#^A/[/,R6,(R7)		; LOOK FOR DIRECTORY

                          67         02E1       

                          0A     12  02E2   384 	BNEQ	140$			; IF NEQ THEN FOUND

            56            3C     3A  02E4   385 	LOCC	#^A/</,R6,(R7)		; TRY OTHER DELIM

                          67         02E7       

                          04     12  02E8   386 	BNEQ	140$			; IF EQL THEN FOUND

                          56     D4  02EA   387 	CLRL	R6			; RETURN NO DIRECTORY

                          12     11  02EC   388 	BRB	150$			; CONTINUE

            56            50     7D  02EE   389 140$:	MOVQ	R0,R6			; SET UP REMAINDER AS RESULT

            61            02     81  02F1   390 	ADDB3	#2,(R1),R0		; LOOK FOR MATCH

                          50         02F4       

            56            50     3A  02F5   391 	LOCC	R0,R6,(R1)		; 

                          61         02F8       

                          48     13  02F9   392 	BEQL	160$			; IF EQL THEN SYNTAX ERROR OF SOME KIND

            56            50     C2  02FB   393 	SUBL	R0,R6			; RETURN REMAINDER

                          56     D6  02FE   394 	INCL	R6			; AND END DELIM

            55         0C A9     3C  0300   395 150$:	MOVZWL	DPB_RETDIR(R9),R5	; ADDRESS RETURN DIRECOTRY

                          3D     13  0304   396 	BEQL	160$			; IF EQL THEN NONE

                                     0306   397 	IFNOWRT	#4,(R5),153$		; BR IF ACCESS VIOLATION

            54            65     3C  030C   398 	MOVZWL	(R5),R4			; GET SIZE

            53         02 A5     3C  030F   399 	MOVZWL	2(R5),R3		; GET ADDRESS

                                     0313   400 	IFNOWRT	R4,(R3),153$		; BR IF ACCESS VIAOLATION

                          03     11  0319   401 	BRB	154$			;

                          009C   31  031B   402 153$:	BRW	RETERROR		; RETURN

            65            56     B0  031E   403 154$:	MOVW	R6,(R5)			; ASSUME NEW SHORTER THAN OLD

            56            54     B1  0321   404 	CMPW	R4,R6			; REQUEST LARGER THAN ACTUAL

                          03     1A  0324   405 	BGTRU	155$			; IF GTRU THEN OK

            65            54     B0  0326   406 	MOVW	R4,(R5)			; RETURN TOTAL AMOUNT

            56            3C     3A  0329   407 155$:	LOCC	#^A/</,R6,(R7)		; RESET <> PAIR

                          67         032C       

                          0E     13  032D   408 	BEQL	157$			; IF EQL THEN NONE

            61         5B 8F     90  032F   409 	MOVB	#^A/[/,(R1)		;

            56            3E     3A  0333   410 	LOCC	#^A/>/,R6,(R7)		;

                          67         0336       

                          04     13  0337   411 	BEQL	157$			;

            61         5D 8F     90  0339   412 	MOVB	#^A/]/,(R1)		;

            67            56     2C  033D   413 157$:	MOVC5	R6,(R7),#0,R4,(R3)	; RETURN RESULT

            54            00         0340       

                          63         0342       

                                     0343   414 ;

                                     0343   415 ; RETURN FNB

                                     0343   416 ;

            59         0A A9     3C  0343   417 160$:	MOVZWL	DPB_FNB(R9),R9		; ADDRESS RETURN FNB

                          62     13  0347   418 	BEQL	DONE			; IF EQL THEN NO RETURN

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

04.0            RSX$PARS - RSX11M PARSE DIRECTIVE                                                                                (3)



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

            69            00     2C  034F   420 	MOVC5	#0,(R9),#0,#N.UNIT+2,(R9)

            1E            00         0352       

                          69         0354       

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

                       14 A9         035A       

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

                                 D3  0362   423 	BITL	#<NAM$M_WILD_UFD!NAM$M_WILD_SFD1!NAM$M_WILD_SFD2>,-

       0104 C8   07000000 8F         0363   424 		P_NAMBLK+NAM$L_FNB(R8)	

                          0A     13  036B   425 	BEQL	165$			; IF EQL THEN NO ERROR

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

       0188 CA            01     A8  0372   427 	BISW	#1,I_PS(R10)		; SET C-BIT

                                     0377   428 165$:	

                                     0377   429 ;

                                     0377   430 ; MOVE FILE NAME TO FNB

                                     0377   431 ;

            6A         5D 8F     3A  0377   432 	LOCC	#^A/]/,I_SCRATCH(R10),@I_SCRATCH+4(R10); LOOK FOR FILENAME START

                       04 BA         037B       

                          13     12  037D   433 	BNEQ	175$			; IF NEQ THEN FOUND

            6A            3E     3A  037F   434 	LOCC	#^A/>/,I_SCRATCH(R10),@I_SCRATCH+4(R10)	;

                       04 BA         0382       

                          0C     12  0384   435 	BNEQ	175$			; IF NEQ THEN FOUND

            6A            3A     3A  0386   436 	LOCC	#^A/:/,I_SCRATCH(R10),@I_SCRATCH+4(R10)

                       04 BA         0389       

                          05     12  038B   437 	BNEQ	175$

            50            6A     7D  038D   438 	MOVQ	I_SCRATCH(R10),R0	; ASSUME ENTIRE STRING

                          04     11  0390   439 	BRB	180$

                          51     D6  0392   440 175$:	INCL	R1

                          50     D7  0394   441 	DECL	R0

                                     0396   442 180$:	

                          6140   94  0396   443 	CLRB	(R1)[R0]

            54            59     D0  0399   444 	MOVL	R9,R4			; ADDRESS TARGET FNB

            57            51     D0  039C   445 	MOVL	R1,R7			; COPY START ADDRESS

                          010B   30  039F   446 	BSBW	RSX$RETFNAME		; RETURN FILE NAME

         1A A9            68     B0  03A2   447 200$:	MOVW	(R8),N.DVNM(R9)

         1C A9         04 A8     B0  03A6   448 	MOVW	4(R8),N.UNIT(R9)

            51       0108 8F     3C  03AB   449 DONE:	MOVZWL	#P_SIZE,R1		; RETURN FAB/NAME BLOCK

            50            58     D0  03B0   450 	MOVL	R8,R0			;

                     0040 8F     BA  03B3   451 	POPR	#^M<R6>			; RESTORE STACK

                          FC46'  31  03B7   452 	BRW	RSX$DEALLOCATE		;

                                     03BA   453 RETERROR:				; ERROR IN RETURNING ARGS

                          FC9B   31  03BA   454 	BRW	BADPARAM		; CONTINUE IN COMMON

                                     03BD   455 	.DSABL	LSB

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

04.0            REPLACE_DEVICE - REPLACE DEVICE NAME ON STRING                                                                   (4)



                                     03BD   457 	.SBTTL	REPLACE_DEVICE - REPLACE DEVICE NAME ON STRING

                                     03BD   458 ;++

                                     03BD   459 ; REPLACE_DEVICE - REPLACE DEVICE NAME ON STRING

                                     03BD   460 ;

                                     03BD   461 ; FUNCTIONAL DESCRIPTION:

                                     03BD   462 ;

                                     03BD   463 ; THIS ROUTINE, GIVEN A FILE SPEC WILL REPLACE THE DEVICE PART WITH THE

                                     03BD   464 ; INFORMATION CONTAINED IN THE RSX LOGICAL NAME TABLE. IN ANY CASE THE 

                                     03BD   465 ; RESULTANT STRING IS BUILT IN THE SCRATCH AREA.

                                     03BD   466 ;

                                     03BD   467 ; INPUTS:

                                     03BD   468 ;

                                     03BD   469 ;	R6 = SIZE OF THE STRING

                                     03BD   470 ;	R7 = ADDRESS OF THE STRING

                                     03BD   471 ;

                                     03BD   472 ; OUTPUTS:

                                     03BD   473 ;

                                     03BD   474 ;	R0 = STATUS OF OPERATION (SYNTAX ERROR)

                                     03BD   475 ;

                                     03BD   476 ;	I_SCRATCH(R10) IS THE DESC OF THE RESULT

                                     03BD   477 ;

                                     03BD   478 ;	R3 = IF BIT 0 SET THEN CHANGE OCCURED

                                     03BD   479 ;	     IF BIT 1 SET THEN DEVICE NAME IS PRESENT

                                     03BD   480 ;

                                     03BD   481 ;	R4-R9 ARE PRESERVED.

                                     03BD   482 ;--

                                     03BD   483 REPLACE_DEVICE:				; REPLACE DEVICE NAME

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

                          7E     D4  03C1   485 	CLRL	-(SP)			; SET FLAGS

                          6A     D4  03C3   486 	CLRL	I_SCRATCH(R10)		; SET NO STRING

         04 AA         08 AA     9E  03C5   487 	MOVAB	I_SCRATCH+8(R10),I_SCRATCH+4(R10); DESC

            56            3A     3A  03CA   488 	LOCC	#^A/:/,R6,(R7)		; LOOK FOR DEVICE NAME

                          67         03CD       

                          27     12  03CE   489 	BNEQ	50$			; IF NEQ THEN FOUND

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

                          67         03D4       

                          12     12  03D5   491 	BNEQ	10$			; IF NEQ THEN NO

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

                          67         03DA       

                          0C     12  03DB   493 	BNEQ	10$			; IF NEQ THEN NO

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

                          67         03E0       

                          06     12  03E1   495 	BNEQ	10$			; IF NEQ THEN NO

            56            3B     3A  03E3   496 	LOCC	#^A/;/,R6,(R7)		; IS THE ENTIRE STRING DEVICE?

                          67         03E6       

                          0E     13  03E7   497 	BEQL	50$			; IF EQL THEN ENTIRE STRING IS DEVICE

            6A            56     D0  03E9   498 10$:	MOVL	R6,I_SCRATCH(R10)	; SET SIZE OF STRING

            67            56     2C  03EC   499 	MOVC5	R6,(R7),#0,#127,I_SCRATCH+8(R10); MOVE THE STRING OVER

       007F 8F            00         03EF       

                       08 AA         03F3       

                          66     11  03F5   500 	BRB	210$			; EXIT

            7E            50     7D  03F7   501 50$:	MOVQ	R0,-(SP)		; SAVE REMAINDER OF STRING

            56            50     C3  03FA   502 	SUBL3	R0,R6,I_SCRATCH(R10)	; CALC DEVICE NAME SIZE

                          6A         03FD       

         04 AA            57     D0  03FE   503 	MOVL	R7,I_SCRATCH+4(R10)	; INSERT ADDRESS

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

                          35     13  0406   505 	BEQL	100$			; IF EQL THEN YES

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

04.0            REPLACE_DEVICE - REPLACE DEVICE NAME ON STRING                                                                   (4)



                          50     7C  0408   506 	CLRQ	R0			; SET NO NAME MATCH

                          FBF3'  30  040A   507 	BSBW	RSX$SEARCHDEV		; LOOK FOR MATCH

                          0B     13  040D   508 	BEQL	73$			; IF EQL THEN FOUND

            55            6A     7D  040F   509 70$:	MOVQ	I_SCRATCH(R10),R5	; PARSE THE DEVICE NAME

                          015A   30  0412   510 	BSBW	RSX$PARSEDEV		;

                          FBE8'  30  0415   511 	BSBW	RSX$SEARCHDEV		;

                          23     12  0418   512 	BNEQ	100$			; IF NEQ THEN NOT FOUND

            50         20 A6     9A  041A   513 73$:	MOVZBL	LUT_REALNAME(R6),R0	; GET REAL SIZE

            6A            50     D1  041E   514 	CMPL	R0,I_SCRATCH(R10)	; SIZES MATCH?

                          07     12  0421   515 	BNEQ	75$			; IF EQL THEN NO

            67            50     29  0423   516 	CMPC	R0,(R7),LUT_REALNAME+1(R6) ; NAME MATCH?

                       21 A6         0426       

                          03     13  0428   517 	BEQL	80$			; IF EQL THEN NO NAME CHANGE

                       08 AE     D6  042A   518 75$:	INCL	8(SP)			; SET NAME CHANGED FLAG

            6A         20 A6     9A  042D   519 80$:	MOVZBL	LUT_REALNAME(R6),I_SCRATCH(R10)

            57         21 A6     9E  0431   520 	MOVAB	LUT_REALNAME+1(R6),R7

                          6E     D5  0435   521 	TSTL	(SP)			; IF OTHER STRING THEN NO COLON

                          04     12  0437   522 	BNEQ	100$			;

                          6A     96  0439   523 	INCB	I_SCRATCH(R10)		; MOVE COLON ALSO

                          25     19  043B   524 	BLSS	300$			; IF LSS THEN ERROR - RETURN NOTHING

            67            6A     28  043D   525 100$:	MOVC3	I_SCRATCH(R10),(R7),I_SCRATCH+8(R10);

                       08 AA         0440       

         04 AA         08 AA     9E  0442   526 	MOVAB	I_SCRATCH+8(R10),I_SCRATCH+4(R10)

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

            6A            50     80  044A   528 	ADDB	R0,I_SCRATCH(R10)	; ADJUST TOTAL SIZE

                          13     19  044D   529 	BLSS	300$			; IF EQL THEN RETURN NOTHING

            61            50     28  044F   530 	MOVC3	R0,(R1),(R3)

                          63         0452       

            6A            3A     3A  0453   531 	LOCC	#^A/:/,I_SCRATCH(R10),@I_SCRATCH+4(R10); ANY DEVICE NAME NOW?

                       04 BA         0456       

                          03     13  0458   532 	BEQL	210$			; IF EQL THEN NO

            6E            02     88  045A   533 	BISB	#2,(SP)			; SET DEVICE NAME FOUND

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

                                 05  0461   535 	RSB

                          6A     D4  0462   536 300$:	CLRL	I_SCRATCH(R10)		; SET NO RESULT

                          6E     D4  0464   537 	CLRL	(SP)			;

                          F5     11  0466   538 	BRB	210$			; RETURN

RSXPARSE        - PARSE DIRECTIVE                                22-AUG-1978 00:25:12   VAX-11 MACRO X0.3-11               Page  13

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



                                     0468   540 	.SBTTL	RSX$BLDFNAME - BUILD FILENAME STRING FROM FNB

                                     0468   541 ;++

                                     0468   542 ; RSX$BLDFNAME - BUILD FILENAME STRING FROM FNB

                                     0468   543 ;

                                     0468   544 ; FUNCTIONAL DESCRIPTION:

                                     0468   545 ;

                                     0468   546 ; THIS ROUTINE BUILDS A FILE NAME STRING FROM A FNB.

                                     0468   547 ;

                                     0468   548 ; INPUTS:

                                     0468   549 ;

                                     0468   550 ;	R4 = FNB

                                     0468   551 ;	R7 = TARGET STRING

                                     0468   552 ;

                                     0468   553 ; OUTPUTS:

                                     0468   554 ;

                                     0468   555 ;	R0 = SIZE OF TARGET STRING

                                     0468   556 ;	R7 = ADDRESS OF THE NEXT TARGET STRING BYTE

                                     0468   557 ;

                                     0468   558 ;	R2-R11 ARE PRESERVED

                                     0468   559 ;--

                                     0468   560 RSX$BLDFNAME::				; BUILD FILENAME FROM FNB

                     007C 8F     BB  0468   561 	PUSHR	#^M<R2,R3,R4,R5,R6>	;

            56            57     D0  046C   562 	MOVL	R7,R6			; COPY START ADDRESS

            54         06 A4     9E  046F   563 	MOVAB	N.FNAM(R4),R4		; ADDRESS FNB NAME

                          FB8A'  30  0473   564 	BSBW	RSX$R50CVT3		; CONVERT FILE NAME

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

                          FB84'  30  0479   566 	BSBW	RSX$R50CVT1		; CONVERT TYPE

            87            3B     90  047C   567 	MOVB	#^A/;/,(R7)+		; INSERT SEMI COLON

            51            64     32  047F   568 	CVTWL	(R4),R1			; GET VERSION NUMBER

                          06     18  0482   569 	BGEQ	10$			; IF GEQ THEN PLUS

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

            51            51     CE  0487   571 	MNEGL	R1,R1			; CONVERT TO POSITIVE

                          52     D4  048A   572 10$:	CLRL	R2			; RESET ACCUM

            53         05 A7     9E  048C   573 	MOVAB	5(R7),R3		; ADDRESS STRING END

            50            53     D0  0490   574 	MOVL	R3,R0			; COPY END ADDRESS

            51            0A     7B  0493   575 15$:	EDIV	#10,R1,R1,R4		;

            54            51         0496       

            54            30     81  0498   576 	ADDB3	#^A/0/,R4,-(R3)		; INSERT CHARACTER

                          73         049B       

            57            53     D1  049C   577 	CMPL	R3,R7			; CONVERTED ENOUGH?

                          F2     12  049F   578 	BNEQ	15$			; IF NEQ THEN NO

            57            50     D0  04A1   579 	MOVL	R0,R7			; SET UP END ADDRESS

            57            56     C3  04A4   580 	SUBL3	R6,R7,R0		; CALC SIZE

                          50         04A7       

                     007C 8F     BA  04A8   581 	POPR	#^M<R2,R3,R4,R5,R6>	; RESTORE REGISTERS

                                 05  04AC   582 	RSB				; RETURN

RSXPARSE        - PARSE DIRECTIVE                                22-AUG-1978 00:25:12   VAX-11 MACRO X0.3-11               Page  14

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



                                     04AD   584 	.SBTTL	RSX$RETFNAME - RETURN FILENAME FROM ASCII TO FNB

                                     04AD   585 ;++

                                     04AD   586 ; RSX$RETFNAME - RETURN FILENAME FROM ASCII TO FNB

                                     04AD   587 ;

                                     04AD   588 ; FUNCTIONAL DESCRIPTION:

                                     04AD   589 ;

                                     04AD   590 ; THIS ROUTINE INSERTS AN ASCII FILENAME INTO AN FNB.

                                     04AD   591 ;

                                     04AD   592 ; INPUTS:

                                     04AD   593 ;

                                     04AD   594 ;	R4 = ADDRESS OF THE FNB

                                     04AD   595 ;	R7 = ADDRESS OF THE FILENAME STRING

                                     04AD   596 ;

                                     04AD   597 ; OUTPUTS:

                                     04AD   598 ;

                                     04AD   599 ;	R2-R11 ARE PRESERVED.

                                     04AD   600 ;--

                                     04AD   601 RSX$RETFNAME::				;

                     01FC 8F     BB  04AD   602 	PUSHR	#^M<R2,R3,R4,R5,R6,R7,R8>

                          54     DD  04B1   603 	PUSHL	R4			; SAVE FNB ADDRESS

            54         06 A4     9E  04B3   604 	MOVAB	N.FNAM(R4),R4		; ADDRESS TARGET FOR CONVERT

            51            57     D0  04B7   605 	MOVL	R7,R1			; ADDRESS NAME STRING

                          50     D4  04BA   606 	CLRL	R0			; SET DOT IS ILLEGAL

                          FB41'  30  04BC   607 	BSBW	RSX$ASCR503		; CONVERT THREE WORDS

            2A            61     91  04BF   608 	CMPB	(R1),#^A/*/		; WILD CARD?

                          02     12  04C2   609 	BNEQ	30$			; IF NEQ THEN NO

                          51     D6  04C4   610 	INCL	R1			; POINT TO NEXT FIELD

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

                          0E     12  04C9   612 	BNEQ	40$			; IF NEQ THEN TRY VERSION

                          51     D6  04CB   613 	INCL	R1			; POINT TO TYPE

                          50     D4  04CD   614 	CLRL	R0			;

                          FB2E'  30  04CF   615 	BSBW	RSX$ASCR501		; CONVERT TYPE FIELD

            2A            61     91  04D2   616 	CMPB	(R1),#^A/*/		; WILD CARD?

                          02     12  04D5   617 	BNEQ	40$			; IF NEQ THEN NO

                          51     D6  04D7   618 	INCL	R1			; POINT TO NEXT FIELD

                          10     BA  04D9   619 40$:	POPR	#^M<R4>			; RETREIVE FNB ADDRESS

            2E            61     91  04DB   620 	CMPB	(R1),#^A/./		; DOT?

                          05     13  04DE   621 	BEQL	45$			; IF EQL THEN YES

            3B            61     91  04E0   622 	CMPB	(R1),#^A/;/		; SEMI COLON

                          1F     12  04E3   623 	BNEQ	60$			; IF NEQ THEN DONE

                          50     D4  04E5   624 45$:	CLRL	R0			; SET UP ACCUM

                          51     D6  04E7   625 	INCL	R1			; PASS DOT

                       0E A4     B4  04E9   626 	CLRW	N.FVER(R4)		; SET UP VERSION ACCUM

            30            61     91  04EC   627 50$:	CMPB	(R1),#^A/0/		; LESS THAN ASCII 0

                          13     1F  04EF   628 	BLSSU	60$			; IF LSSU THEN DONE

            39            61     91  04F1   629 	CMPB	(R1),#^A/9/		; GTR THAN ASCII 9?

                          0E     1A  04F4   630 	BGTRU	60$			; IF SO THEN ALSO DONE

         0E A4            0A     A4  04F6   631 	MULW	#10,N.FVER(R4)		;

            81            30     83  04FA   632 	SUBB3	#^A/0/,(R1)+,R0		;

                          50         04FD       

         0E A4            50     A0  04FE   633 	ADDW	R0,N.FVER(R4)		; ACCUM RESULT

                          E8     11  0502   634 	BRB	50$			;

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

                                 05  0508   636 	RSB				;

RSXPARSE        - PARSE DIRECTIVE                                22-AUG-1978 00:25:12   VAX-11 MACRO X0.3-11               Page  15

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



                                     0509   638 	.SBTTL	RSX$BLDASCDEV - BUILD ASCII DEVICE NAME

                                     0509   639 ;++

                                     0509   640 ; RSX$BLDASCDEV - BUILD ASCII DEVICE NAME

                                     0509   641 ;

                                     0509   642 ; FUNCTIONAL DESCRIPTION:

                                     0509   643 ;

                                     0509   644 ; THIS ROUTINE GIVEN A DEVICENAME AND UNIT, BUILDS AN ASCII STRING

                                     0509   645 ; CORRESPONDING TO THE DEVICENAME AND UNIT.

                                     0509   646 ;

                                     0509   647 ; THIS IS AN OCTAL CONVERTION.

                                     0509   648 ;

                                     0509   649 ; INPUTS:

                                     0509   650 ;

                                     0509   651 ;	R0 = TWO CHARACTERS OF ASCII NAME

                                     0509   652 ;	R1 = UNIT NUMBER

                                     0509   653 ;	R3 = TARGET OF THE CONVERT

                                     0509   654 ;

                                     0509   655 ; OUTPUTS:

                                     0509   656 ;

                                     0509   657 ;	R3 = ADDRESS OF THE NEXT DESTINATION BYTE

                                     0509   658 ;

                                     0509   659 ;	R2,R4,R5,R6,R7 ARE PRESERVED.

                                     0509   660 ;--

                                     0509   661 RSX$BLDASCDEV::				; BUILD DEVICE NAME

                          34     BB  0509   662 	PUSHR	#^M<R2,R4,R5>		;

            54         08 A3     9E  050B   663 	MOVAB	8(R3),R4		; ADDRESS END OF STRING

            51            51     9A  050F   664 	MOVZBL	R1,R1			; ASSURE OF ONLY BYTE

                          64     94  0512   665 	CLRB	(R4)			; SET ASCIZ

                          52     D4  0514   666 	CLRL	R2			; SET UP ACCUM

            51            08     7B  0516   667 10$:	EDIV	#8,R1,R1,R5		; GET REMAINDER

            55            51         0519       

            55            30     81  051B   668 	ADDB3	#^A/0/,R5,-(R4)		; INSERT

                          74         051E       

                          51     D5  051F   669 	TSTL	R1			; DONE?

                          F3     12  0521   670 	BNEQ	10$			; CONTINUE

            74            50     B0  0523   671 	MOVW	R0,-(R4)		; INSERT NAME

            54            53     C3  0526   672 	SUBL3	R3,R4,R5		; CALC MOVE SIZE

                          55         0529       

            08            55     C3  052A   673 	SUBL3	R5,#8,R5		;

                          55         052D       

            64            55     28  052E   674 	MOVC3	R5,(R4),(R3)		; MOVE NAME BACK

                          63         0531       

                          34     BA  0532   675 	POPR	#^M<R2,R4,R5>		;

                                 05  0534   676 	RSB				;

RSXPARSE        - PARSE DIRECTIVE                                22-AUG-1978 00:25:12   VAX-11 MACRO X0.3-11               Page  16

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



                                     0535   678 	.SBTTL	RSX$BLDPHYDEV - BUILD PHYSICAL DEVICE NAME

                                     0535   679 ;++

                                     0535   680 ; RSX$BLDPHYDEV - BUILD PHYSICAL DEVICE NAME

                                     0535   681 ;

                                     0535   682 ; FUNCTIONAL DESCRIPTION:

                                     0535   683 ;

                                     0535   684 ; THIS ROUTINE GIVEN A DEVICENAME AND UNIT, BUILDS AN PHYSICAL DEVICENAME

                                     0535   685 ; CORRESPONDING TO THE INPUT DEVICENAME AND UNIT.

                                     0535   686 ; THE DEVICE NAME IS BUILT USING 2 ASCII CHARACTERS, A CONTROLLER AND

                                     0535   687 ; A UNIT ON THAT CONTROLLER. THE CONTROLLER IS THE RESULT OF AN INTEGER

                                     0535   688 ; DIVIDE OF THE UNIT BY 16.

                                     0535   689 ;

                                     0535   690 ; INPUTS:

                                     0535   691 ;

                                     0535   692 ;	R0 = TWO CHARACTERS OF ASCII NAME

                                     0535   693 ;	R1 = UNIT NUMBER

                                     0535   694 ;	R3 = TARGET OF THE CONVERT

                                     0535   695 ;

                                     0535   696 ; OUTPUTS:

                                     0535   697 ;

                                     0535   698 ;	R3 = ADDRESS OF THE NEXT DESTINATION BYTE

                                     0535   699 ;

                                     0535   700 ;	R2,R4,R5,R6,R7 ARE PRESERVED.

                                     0535   701 ;--

                                     0535   702 RSX$BLDPHYDEV::				; BUILD DEVICE NAME

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

            54         07 A3     9E  0539   704 	MOVAB	7(R3),R4		; ADDRESS END OF STRING

            51            51     9A  053D   705 	MOVZBL	R1,R1			; ASSURE OF ONLY BYTE

                          64     94  0540   706 	CLRB	(R4)			; SET ASCIZ

                          52     D4  0542   707 	CLRL	R2			; SET UP ACCUM

            51            10     7B  0544   708 	EDIV	#16,R1,R6,R1		; GET THE CONTROLLER INDEX

            51            56         0547       

            51            0A     7B  0549   709 10$:	EDIV	#10,R1,R1,R5		; GET REMAINDER

            55            51         054C       

            55            30     81  054E   710 	ADDB3	#^A/0/,R5,-(R4)		; INSERT

                          74         0551       

                          51     D5  0552   711 	TSTL	R1			; DONE?

                          F3     12  0554   712 	BNEQ	10$			; CONTINUE

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

                          74         055A       

            74            50     B0  055B   714 	MOVW	R0,-(R4)		; INSERT NAME

            54            53     C3  055E   715 	SUBL3	R3,R4,R5		; CALC NAME SIZE

                          55         0561       

            07            55     C3  0562   716 	SUBL3	R5,#7,R5		;

                          55         0565       

            64            55     28  0566   717 	MOVC3	R5,(R4),(R3)		; MOVE NAME BACK

                          63         0569       

                     0074 8F     BA  056A   718 	POPR	#^M<R2,R4,R5,R6>	;

                                 05  056E   719 	RSB				;

RSXPARSE        - PARSE DIRECTIVE                                22-AUG-1978 00:25:12   VAX-11 MACRO X0.3-11               Page  17

04.0            RSX$PARSEDEV - PARSE DEVICE NAME                                                                                 (9)



                                     056F   721 	.SBTTL	RSX$PARSEDEV - PARSE DEVICE NAME

                                     056F   722 ;++

                                     056F   723 ; RSX$PARSEDEV - PARSE DEVICE NAME STRING INTO NAME/UNIT

                                     056F   724 ;

                                     056F   725 ; FUNCTIONAL DESCRIPTION:

                                     056F   726 ;

                                     056F   727 ; THIS ROUTINE, GIVEN AN ASCII DEVICE NAME STRING, RETURNS A

                                     056F   728 ; TWO CHARACTER NAME AND A UNIT NUMBER THAT CONTAINS A CONTROLLER

                                     056F   729 ; INDEX.

                                     056F   730 ;

                                     056F   731 ; INPUTS:

                                     056F   732 ;

                                     056F   733 ;	R5 = SIZE OF THE DEVICE NAME STRING

                                     056F   734 ;	R6 = ADDRESS OF THE DEVICE NAME STRING

                                     056F   735 ;

                                     056F   736 ; OUTPUTS:

                                     056F   737 ;

                                     056F   738 ;	R0 = DEVICE NAME

                                     056F   739 ;	R1 = UNIT

                                     056F   740 ;

                                     056F   741 ;	R2-R11 ARE PRESERVED.

                                     056F   742 ;

                                     056F   743 ;--

                                     056F   744 RSX$PARSEDEV::				; PARSE DEVICE NAME

                          04     BB  056F   745 	PUSHR	#^M<R2>			;

                          51     D4  0571   746 	CLRL	R1			; ASSUME UNIT 0

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

            02            55     91  0577   748 	CMPB	R5,#2			; 2 OR LESS CHARACTERS?

                          28     1B  057A   749 	BLEQU	30$			; IF YES THEN DONE

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

                          50         057F       

                          0D     19  0580   751 	BLSS	20$			; IF LSS THEN END

            50            09     91  0582   752 	CMPB	#9,R0			; NUMERIC?

                          08     1F  0585   753 	BLSSU	20$			; IF LSSU THEN NO

            51            0A     C4  0587   754 	MULL	#10,R1			; ADJUST ACCUM

            51            50     C0  058A   755 	ADDL	R0,R1			; ACCUM RESULT

                          ED     11  058D   756 	BRB	10$			; CONTINUE

            52            56     C3  058F   757 20$:	SUBL3	R6,R2,R0		; GET REMAINING SIZE

                          50         0592       

            50            02     D1  0593   758 	CMPL	#2,R0			; MORE THAN 2 REMAIN?

                          0C     1A  0596   759 	BGTRU	30$			; IF GEQU THEN NO CONTROLLER

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

                          50         059C       

            50            04     78  059D   761 	ASHL	#4,R0,R0		; MULTIPLY BY 16

                          50         05A0       

            51            50     C0  05A1   762 	ADDL	R0,R1			; INSERT IN UNIT NUMBER

            50            66     3C  05A4   763 30$:	MOVZWL	(R6),R0			; GET DEVICE NAME

                          04     BA  05A7   764 	POPR	#^M<R2>			; 

                                 05  05A9   765 	RSB

RSXPARSE        - PARSE DIRECTIVE                                22-AUG-1978 00:25:12   VAX-11 MACRO X0.3-11               Page  18

04.0            RSX$MAPDEVNAM - MAP STARLET DEVICE NAME                                                                         (10)



                                     05AA   767 	.SBTTL	RSX$MAPDEVNAM - MAP STARLET DEVICE NAME

                                     05AA   768 ;++

                                     05AA   769 ; RSX$MAPDEVNAME - MAP STARLET DEVICE NAME TO RSX INTERNAL FORMAT

                                     05AA   770 ;

                                     05AA   771 ; FUNCTIONAL DESCRIPTION:

                                     05AA   772 ;

                                     05AA   773 ; THIS ROUTINE, GIVEN THE STARLET DEVICE NAME / UNIT RETURNED BY $GTCHAN

                                     05AA   774 ; BUILDS AN RSX INFORMATIONAL NAME DDU: AND THE ASCII STRING OF THE REAL

                                     05AA   775 ; NAME.

                                     05AA   776 ;

                                     05AA   777 ; THE INFORMATIONAL NAME IS PLACED IN LUT_INFONAME AND LUT_INFOUNIT.

                                     05AA   778 ; THE REAL NAME ASCII STRING IS PLACED AS A COUNTED STRING IN LUT_REALNAME.

                                     05AA   779 ;

                                     05AA   780 ; INPUTS:

                                     05AA   781 ;

                                     05AA   782 ;	R8 = ADDRESS OF THE LUT ENTRY TO PROCESS

                                     05AA   783 ;	R10 = ADDRESS OF THE IMAGE IMPURE DATA BASE

                                     05AA   784 ;	R11 = ADDRESS OF THE IMAGE

                                     05AA   785 ;

                                     05AA   786 ; OUTPUTS:

                                     05AA   787 ;

                                     05AA   788 ;	R0,R1,R2,R3,R4,R7,R9 ARE NOT PRESERVED.

                                     05AA   789 ;	R5,R8,R10,R11 ARE PRESERVED.

                                     05AA   790 ;--

                                     05AA   791 RSX$MAPDEVNAM::				; MAP STARLET DEVICE NAME

                          20     BB  05AA   792 	PUSHR	#^M<R5>			;

         04 AA         08 AA     9E  05AC   793 	MOVAB	I_SCRATCH+8(R10),I_SCRATCH+4(R10); SET UP AREA FOR GET CHANNEL

            6A            32     9A  05B1   794 	MOVZBL	#50,I_SCRATCH(R10)	;

                                     05B4   795 	$GETCHN_S	LUT_CHAN(R8),I_SCRATCH(R10),I_SCRATCH(R10)

         14 A8         08 AA     7D  05C7   796 	MOVQ	I_SCRATCH+8(R10),LUT_CHAR(R8); INSERT CHARACTERISTICS

         1C A8         10 AA     D0  05CC   797 	MOVL	I_SCRATCH+8+8(R10),LUT_CHAR+8(R8);

            50         16 AA     3C  05D1   798 	MOVZWL	I_SCRATCH+8+14(R10),R0	; GET OFFSET TO NAME

            55         08 AA40   9E  05D5   799 	MOVAB	I_SCRATCH+8(R10)[R0],R5	; ADDRESS NAME

                                     05DA   800 ;

                                     05DA   801 ; BUILD INFORMATION NAME FIRST

                                     05DA   802 ;

         30 A8         01 A5     B0  05DA   803 	MOVW	1(R5),LUT_INFONAME(R8)	; INSERT FIRST 2 CHARS. OF REAL NAME

            53            65     9A  05DF   804 	MOVZBL	(R5),R3			; GET SIZE OF NAME

                          50     D4  05E2   805 	CLRL	R0			; 

            53            02     B1  05E4   806 	CMPW	#2,R3			; NAME GREATER THAN 2 CHARS?

                          09     1E  05E7   807 	BGEQU	10$			; IF LEQU THEN YES

            6543       41 8F     83  05E9   808 	SUBB3	#^A/A/,(R5)[R3],R0	; GET CONTROLLER RELITIVE TO "A"

                          50         05EE       

            50            10     C4  05EF   809 	MULL	#16,R0			; CONVERT TO CONTROLLER MAP

            50         14 AA     A1  05F2   810 10$:	ADDW3	I_SCRATCH+8+12(R10),R0,LUT_INFOUNIT(R8); ADD IN UNIT AND STORE

                       32 A8         05F6       

                                     05F8   811 ;

                                     05F8   812 ; CONVERT REAL NAME TO ASCII STRING

                                     05F8   813 ;

            59         64 AA     9E  05F8   814 	MOVAB	I_SCRATCH+100(R10),R9	; ADDRESS TEMP STORAGE AREA

                          59     DD  05FC   815 	PUSHL	R9			;

            50         14 AA     3C  05FE   816 	MOVZWL	I_SCRATCH+8+12(R10),R0	; GET REAL UNIT NUMBER

                          51     D4  0602   817 	CLRL	R1			; SET UP FOR QUAD WORD DIVIDE

            50            0A     7B  0604   818 20$:	EDIV	#10,R0,R0,R2		; GET REMAINDER FROM 8

            52            50         0607       

            52            30     81  0609   819 	ADDB3	#48,R2,-(R9)		; INSERT IN STRING BACKWARDS

                          79         060C       

RSXPARSE        - PARSE DIRECTIVE                                22-AUG-1978 00:25:12   VAX-11 MACRO X0.3-11               Page  19

04.0            RSX$MAPDEVNAM - MAP STARLET DEVICE NAME                                                                         (10)



                          50     D5  060D   820 	TSTL	R0			; DONE?

                          F3     12  060F   821 	BNEQ	20$			; IF NEQ THEN NO

            57            59     D0  0611   822 	MOVL	R9,R7			; COPY ADDRESS UNIT STRING START

            8E            59     C3  0614   823 	SUBL3	R9,(SP)+,R9		; CALC SIZE OF UNIT STRING

                          59         0617       

                          53     D6  0618   824 	INCL	R3			; ADJUST NAME SIZE TO INCLUDE COUNT

            65            53     28  061A   825 	MOVC3	R3,(R5),LUT_REALNAME(R8); COPY NAME AND SIZE

                       20 A8         061D       

         20 A8            59     80  061F   826 	ADDB	R9,LUT_REALNAME(R8)	; ADJUST NAME SIZE BY UNIT SIZE

            67            59     28  0623   827 	MOVC3	R9,(R7),(R3)		; COPY UNIT STRING

                          63         0626       

            63            3A     90  0627   828 	MOVB	#^A/:/,(R3)		; INSERT COLON AT END

                          20     BA  062A   829 	POPR	#^M<R5>			;

            51       0000'CF     9E  062C   830 	MOVAB	W^RSX$A_DEVTYPE,R1	; ADDRESS LIST

                          51     DD  0631   831 	PUSHL	R1			; SAVE START OF LIST

         18 A8            61     91  0633   832 30$:	CMPB	(R1),LUT_TYPE(R8)	; MATCH?

                          04     13  0637   833 	BEQL	45$			; IF EQL THEN YES

                          81     95  0639   834 	TSTB	(R1)+			; END OF LIST?

                          F6     12  063B   835 	BNEQ	30$			; IF NEQ THEN NO

                                     063D   836 ;

                                     063D   837 ; NOT FOUND GETS NON SPECIFIC TYPE

                                     063D   838 ;

            51            8E     C2  063D   839 45$:	SUBL	(SP)+,R1		; FIND OFFSET

            51            01     81  0640   840 	ADDB3	#1,R1,LUT_TYPE(R8)	; PUT TYPE BACK

                       18 A8         0643       

                                 05  0645   841 	RSB				; RETURN

RSXPARSE        - PARSE DIRECTIVE                                22-AUG-1978 00:25:12   VAX-11 MACRO X0.3-11               Page  20

04.0            RSX$TRNLOGNAM - TRANSLATE LOGICAL NAME                                                                          (11)



                                     0646   843 	.SBTTL	RSX$TRNLOGNAM - TRANSLATE LOGICAL NAME 

                                     0646   844 ;++

                                     0646   845 ; RSX$TRNLOGNAM - TRANSLATE LOGICAL NAME

                                     0646   846 ; RSX$TRNLOGONCE - TRANSLATE LOGICAL NAME ONCE

                                     0646   847 ;

                                     0646   848 ; FUNCTIONAL DESCRIPTION:

                                     0646   849 ;

                                     0646   850 ; THIS ROUTINE, GIVEN A STRING PERFORMS A LOGICAL NAME TRANSLATION

                                     0646   851 ; RESULTING IN THE TRANSLATED STRING AND A DESCRIPTOR.

                                     0646   852 ;

                                     0646   853 ; INPUTS:

                                     0646   854 ;

                                     0646   855 ;	I_SCRATCH,I_SCRATCH+4 ARE THE INPUT STRING DESC.

                                     0646   856 ;

                                     0646   857 ;	R10 = ADDRESS OF THE IMAGE IMPURE DATA BASE

                                     0646   858 ;	R11 = ADDRESS OF THE IMAGE

                                     0646   859 ;

                                     0646   860 ; OUTPUTS:

                                     0646   861 ;

                                     0646   862 ;	R0 = STATUS OF THE OPERATION

                                     0646   863 ;

                                     0646   864 ;	I_SCRATCH,I_SCRATCH+4 ARE THE RESULTANT STRING DESCRIPTOR.

                                     0646   865 ;

                                     0646   866 ;	ALL REGISTERS ARE SAVED EXCEPT R0,R1.

                                     0646   867 ;

                                     0646   868 ;--

                                     0646   869 RSX$TRNLOGONE::				; TRANSLATE LOGICAL NAME

                          02     BB  0646   870 	PUSHR	#^M<R1>			; SAVE REGISTERS

            6A            3A     3A  0648   871 	LOCC	#^A/:/,I_SCRATCH(R10),@I_SCRATCH+4(R10)

                       04 BA         064B       

            6A            50     C2  064D   872 	SUBL	R0,I_SCRATCH(R10)	; REMOVE REMAINDER

                          02     BA  0650   873 	POPR	#^M<R1>			; RESTORE REGISTERS

         08 AA            6A     7D  0652   874 	MOVQ	I_SCRATCH(R10),I_SCRATCH+8(R10); COPY INPUT DESC.

                                     0656   875 ;

                                     0656   876 ; RESULT OF TRANSLATION CAN BE UP TO 64 CHARACTERS

                                     0656   877 ;

         04 AA         60 AA     9E  0656   878 	MOVAB	I_SCRATCH+160-64(R10),I_SCRATCH+4(R10); SET UP RESULT DESC

            6A         40 8F     9A  065B   879 	MOVZBL	#64,I_SCRATCH(R10)	; SET UP POTENTIAL SIZE

                                     065F   880 	$TRNLOG_S	I_SCRATCH+8(R10),-; TRANSLATE NAME

                                     065F   881 			I_SCRATCH(R10),-; TARGET FOR SIZE

                                     065F   882 			I_SCRATCH(R10); TARGET STRING DESC.

                                 05  0673   883 	RSB				;

                                     0674   884 ;

                                     0674   885 ;

                                     0674   886 ;

                                     0674   887 RSX$TRNLOGNAME::			; TRANSLATE LOGICAL NAME

                     0080 8F     BB  0674   888 	PUSHR	#^M<R7>

            57            02     9A  0678   889 	MOVZBL	#2,R7			; THREE TIME LOOP

                          C9     10  067B   890 20$:	BSBB	RSX$TRNLOGONE		; TRANSLATE THEN STRING

            1B            50     E9  067D   891 	BLBC	R0,30$			; IF ERROR THEN DONE

         04 BA            1B     91  0680   892 	CMPB	#^X01B,@I_SCRATCH+4(R10); ESCAPE START STRING?

                          12     12  0684   893 	BNEQ	25$			; IF NEQ THEN CONTINUE

            50       0000'8F     3C  0686   894 	MOVZWL	#SS$_NOTRAN,R0		; SET PROPER STATUS

         04 AA            04     C0  068B   895 	ADDL	#4,I_SCRATCH+4(R10)	; ADDRESS REAL STRING

            6A            04     C2  068F   896 	SUBL	#4,I_SCRATCH(R10)	;

                          07     14  0692   897 	BGTR	30$			; CONTINUE IF OK

                          6A     D4  0694   898 	CLRL	I_SCRATCH(R10)		; SET NO STRING

RSXPARSE        - PARSE DIRECTIVE                                22-AUG-1978 00:25:12   VAX-11 MACRO X0.3-11               Page  21

04.0            RSX$TRNLOGNAM - TRANSLATE LOGICAL NAME                                                                          (11)



                          03     11  0696   899 	BRB	30$			; CONTINUE

            E0            57     F5  0698   900 25$:	SOBGTR	R7,20$			; ELSE CONTINUE

                     0080 8F     BA  069B   901 30$:	POPR	#^M<R7>

                                 05  069F   902 	RSB				;

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

04.0            RSX$TRNLOGNAM - TRANSLATE LOGICAL NAME                                                                          (12)



                                     06A0   904 ;

                                     06A0   905 	.END

RSXPARSE        - PARSE DIRECTIVE                                22-AUG-1978 00:25:12   VAX-11 MACRO X0.3-11               Page  23

SYMBOL TABLE                                                                                                                    (12)



$$MSG          = 00000000            FAB$B_BID        00000000            FAB$M_NAM      = 01000000            

...GBL         = 00000000            FAB$B_BKS        0000003E            FAB$M_NEF      = 00000400            

...TPC         = 0000001E            FAB$B_BLN        00000001            FAB$M_NFS      = 00010000            

ACBC_CTLRCAST  = 00000002            FAB$B_DNS        00000035            FAB$M_NIL      = 00000020            

ACBC_FLOATAST  = 00000003            FAB$B_FAC        00000016            FAB$M_OFP      = 20000000            

ACBC_PWRAST    = 00000000            FAB$B_FNS        00000034            FAB$M_POS      = 00000100            

ACBC_RCVAST    = 00000001            FAB$B_FSZ        0000003F            FAB$M_PPF      = 00040000            

ACBV_INPROG    = 00000001            FAB$B_ORG        0000001D            FAB$M_PPF_IND  = 00004000            

ACBV_PERM      = 00000000            FAB$B_RAT        0000001E            FAB$M_PPF_RAT  = 00003FC0            

ACBV_TYPE      = 00000008            FAB$B_RFM        0000001F            FAB$M_PRN      = 00000004            

ACB_FLAGS        0000000C            FAB$B_RTV        0000001C            FAB$M_PUT      = 00000001            

ACB_LINK         00000000            FAB$B_SHR        00000017            FAB$M_RCK      = 00800000            

ACB_UPC          0000000A            FAB$C_BID      = 00000003            FAB$M_RWC      = 00000800            

ACB_UPRM         00000008            FAB$C_BLN        00000050            FAB$M_RWO      = 00000080            

ADR_HIGHLIM      00000004            FAB$C_FIX      = 00000001            FAB$M_SCF      = 00004000            

ADR_LOWLIM       00000000            FAB$C_HSH      = 00000030            FAB$M_SHRDEL   = 00000004            

ADR_SIZE         00000008            FAB$C_IDX      = 00000020            FAB$M_SHRGET   = 00000002            

AP_NAME          00000004            FAB$C_MAXRFM   = 00000003            FAB$M_SHRPUT   = 00000001            

AST_PARAM        00000004            FAB$C_REL      = 00000010            FAB$M_SHRUPD   = 00000008            

AST_PC           00000010            FAB$C_RFM_DFLT = 00000002            FAB$M_SPL      = 00002000            

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

AST_R0           00000008            FAB$C_UDF      = 00000000            FAB$M_SUP      = 00000004            

AST_R1           0000000C            FAB$C_VAR      = 00000002            FAB$M_TEF      = 10000000            

BADPARAM         00000058 R     06   FAB$C_VFC      = 00000003            FAB$M_TMD      = 00000010            

BADPARAM2        0000010C R     06   FAB$K_BLN        00000050            FAB$M_TMP      = 00000008            

BIT...         = 0000001A            FAB$L_ALQ        00000010            FAB$M_TRN      = 00000010            

C$$ORE         = 00000000            FAB$L_CTX        00000018            FAB$M_UFM      = 04000000            

CH.AND         = 00000001            FAB$L_DEV        00000040            FAB$M_UFO      = 00020000            

COMMONFCS        00000176 R     06   FAB$L_DNA        00000030            FAB$M_UPD      = 00000008            

C_CANONPS      = 83C00000            FAB$L_FNA        0000002C            FAB$M_UPI      = 00000040            

C_RCVDSTR      = 44564352            FAB$L_FOP        00000004            FAB$M_WCK      = 00000200            

DEVICE           0000010F R     06   FAB$L_JNL        00000020            FAB$S_ORG      = 00000004            

DONE             000003AB R     06   FAB$L_MRN        00000038            FAB$S_PPF_RAT  = 00000008            

DPB_DD           00000008            FAB$L_NAM        00000028            FAB$V_BIO      = 00000005            

DPB_DEFA         00000006            FAB$L_SDC        00000044            FAB$V_BLK      = 00000003            

DPB_DFNB         00000006            FAB$L_STS        00000008            FAB$V_BRO      = 00000006            

DPB_DSPT         00000004            FAB$L_STV        0000000C            FAB$V_CBT      = 00000015            

DPB_FNB          0000000A            FAB$L_XAB        00000024            FAB$V_CIF      = 00000019            

DPB_LUN          00000002            FAB$M_BIO      = 00000020            FAB$V_CR       = 00000001            

DPB_MODE         00000000            FAB$M_BLK      = 00000008            FAB$V_CTG      = 00000014            

DPB_PRIM         00000004            FAB$M_BRO      = 00000040            FAB$V_DEL      = 00000002            

DPB_RETDIR       0000000C            FAB$M_CBT      = 00200000            FAB$V_DFW      = 00000005            

FA.APD         = 00000040            FAB$M_CIF      = 02000000            FAB$V_DLT      = 0000000F            

FA.CRE         = 00000008            FAB$M_CR       = 00000002            FAB$V_DMO      = 0000000C            

FA.DLK         = 00000200            FAB$M_CTG      = 00100000            FAB$V_ESC      = 0000001B            

FA.ENB         = FFFF8000            FAB$M_DEL      = 00000004            FAB$V_FTN      = 00000000            

FA.EXC         = 00000400            FAB$M_DFW      = 00000020            FAB$V_GET      = 00000001            

FA.EXT         = 00000004            FAB$M_DLT      = 00008000            FAB$V_INP      = 00000013            

FA.NSP         = 00000040            FAB$M_DMO      = 00001000            FAB$V_JNL      = 00000016            

FA.POS         = 00001000            FAB$M_ESC      = 08000000            FAB$V_KFO      = 0000001E            

FA.RD          = 00000001            FAB$M_FTN      = 00000001            FAB$V_MSE      = 00000004            

FA.RWD         = 00000800            FAB$M_GET      = 00000002            FAB$V_MXV      = 00000001            

FA.SEQ         = 00004000            FAB$M_INP      = 00080000            FAB$V_NAM      = 00000018            

FA.SHR         = 00000020            FAB$M_JNL      = 00400000            FAB$V_NEF      = 0000000A            

FA.TMP         = 00000010            FAB$M_KFO      = 40000000            FAB$V_NFS      = 00000010            

FA.WCK         = 00002000            FAB$M_MSE      = 00000010            FAB$V_NIL      = 00000005            

FA.WRT         = 00000002            FAB$M_MXV      = 00000002            FAB$V_OFP      = 0000001D            

RSXPARSE        - PARSE DIRECTIVE                                22-AUG-1978 00:25:12   VAX-11 MACRO X0.3-11               Page  24

SYMBOL TABLE                                                                                                                    (12)



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              000000E9 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            

FD.RAN         = 00000002            IE.ALN         = FFFFFFDE            IE.ONP         = FFFFFFFB            

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

SYMBOL TABLE                                                                                                                    (12)



IE.OVR         = FFFFFFEE            I_GARD           000000C8            N.FNAM         = 00000006            

IE.PES         = FFFFFFAD            I_HIGHEFN        00000148            N.FTYP         = 0000000C            

IE.PRI         = FFFFFFF0            I_HIGHSIZE       000000D0            N.FVER         = 0000000E            

IE.RAC         = FFFFFFD4            I_IMAGEVBN       000000D4            N.NEXT         = 00000012            

IE.RAT         = FFFFFFD3            I_INISIZE        000000CC            N.STAT         = 00000010            

IE.RBG         = FFFFFFD8            I_LENGTH         000001EC            N.UNIT         = 0000001C            

IE.RCN         = FFFFFFD2            I_LOGNAME        000000B8            NAM$B_BID        00000000            

IE.RER         = FFFFFFE0            I_LUT            00000144            NAM$B_BLN        00000001            

IE.RNM         = FFFFFFCD            I_NLUN           00000140            NAM$B_CURLVL     00000038            

IE.RSU         = FFFFFFEF            I_PC             00000184            NAM$B_ESL        0000000B            

IE.SNC         = FFFFFFDD            I_PROCNAME       00000128            NAM$B_ESS        0000000A            

IE.SPC         = FFFFFFFA            I_PS             00000188            NAM$B_RSL        00000003            

IE.SQC         = FFFFFFDC            I_PWRAST         0000019C            NAM$B_RSS        00000002            

IE.SRE         = FFFFFFF2            I_R0             00000164            NAM$C_BID      = 00000002            

IE.STK         = FFFFFFC6            I_R1             00000168            NAM$C_BLN        00000038            

IE.TMM         = FFFFFFB9            I_R2             0000016C            NAM$C_BLN_DIRWC  00000050            

IE.TMO         = FFFFFFB6            I_R3             00000170            NAM$C_DVI      = 00000010            

IE.ULK         = FFFFFFAB            I_R4             00000174            NAM$C_MAXRSS   = 00000080            

IE.VER         = FFFFFFFC            I_R5             00000178            NAM$C_MAXRSSLCL= 00000043            

IE.WAC         = FFFFFFE3            I_R6             0000017C            NAM$K_BLN        00000038            

IE.WAT         = FFFFFFE1            I_RAD50NAME      00000124            NAM$K_BLN_DIRWC  00000050            

IE.WCK         = FFFFFFAA            I_RCVAST         00000198            NAM$L_DIRWCC1    00000040            

IE.WER         = FFFFFFDF            I_RCVMAIL        0000013C            NAM$L_DIRWCC2    00000044            

IE.WLK         = FFFFFFF4            I_RUNFLAGS       00000190            NAM$L_DIRWCC3    00000048            

IS.BV          = 00000005            I_SCRATCH        00000000            NAM$L_DIRWCC4    0000004C            

IS.CC          = 00000301            I_STATE          0000014C            NAM$L_DWC        00000038            

IS.CR          = 00000D01            I_TYPE           00000180            NAM$L_ESA        0000000C            

IS.EOT         = 00000401            I_UIC            00000118            NAM$L_FNB        00000034            

IS.ESC         = 00001B01            I_WAIT           00000154            NAM$L_RLF        00000010            

IS.ESQ         = 00009B01            I_WAITSAVE       0000015C            NAM$L_RSA        00000004            

IS.PES         = 00008001            LUTC_CR        = 00000005            NAM$L_WCC        00000030            

IS.PND         = 00000000            LUTC_DISK      = 00000002            NAM$M_DIR_LVLS = 00E00000            

IS.RDD         = 00000002            LUTC_LP        = 00000004            NAM$M_EXP_DEV  = 00000080            

IS.SUC         = 00000001            LUTC_RMS       = 00000000            NAM$M_EXP_DIR  = 00000040            

IS.TAB         = 00000901            LUTC_TAPE      = 00000003            NAM$M_EXP_NAME = 00000004            

IS.TMO         = 00000002            LUTC_TRM       = 00000001            NAM$M_EXP_TYPE = 00000002            

I_ADR0           000000D8            LUTV_CTRLC     = 00000002            NAM$M_EXP_VER  = 00000001            

I_ASCIINAME      0000011C            LUTV_CTRLO     = 00000000            NAM$M_GRP_MBR  = 00080000            

I_ASTPOOL        000000A8            LUTV_PRM       = 00000003            NAM$M_HIGHVER  = 00008000            

I_ASTQUEUE       000000A0            LUTV_TI        = 00000001            NAM$M_LOWVER   = 00004000            

I_BAILOUTFP      0000018C            LUT_CHAN         0000000C            NAM$M_NODE     = 00020000            

I_CMDAD          000000C4            LUT_CHAR         00000014            NAM$M_QUOTED   = 00040000            

I_CMDSZ          000000C0            LUT_CTRLC        00000034            NAM$M_WILDCARD = 00000100            

I_CURAST         00000194            LUT_FLAGS        0000000A            NAM$M_WILD_DIR = 00100000            

I_FCBPOOL        000000B0            LUT_INFONAME     00000030            NAM$M_WILD_GRP = 01000000            

I_FCC            000001B0            LUT_INFOUNIT     00000032            NAM$M_WILD_MBR = 02000000            

I_FLOATA0        000001BC            LUT_LINK         00000000            NAM$M_WILD_NAME= 00000020            

I_FLOATA1        000001C4            LUT_REALNAME     00000020            NAM$M_WILD_SFD1= 02000000            

I_FLOATA2        000001CC            LUT_REF          00000008            NAM$M_WILD_SFD2= 04000000            

I_FLOATA3        000001D4            LUT_RSXNAME      00000010            NAM$M_WILD_TYPE= 00000010            

I_FLOATA4        000001DC            LUT_RSXUNIT      00000012            NAM$M_WILD_UFD = 01000000            

I_FLOATA5        000001E4            LUT_SIZE         00000038            NAM$M_WILD_VER = 00000008            

I_FLOATADR       000001AC            LUT_TYPE         00000018            NAM$S_DIR_LVLS = 00000003            

I_FLOATAST       000001A0            LUT_UNIT         00000020            NAM$T_DVI        00000014            

I_FLOATCSR       000001A4            N.DID          = 00000014            NAM$V_DIR_LVLS = 00000015            

I_FLOATERR       000001A8            N.DVNM         = 0000001A            NAM$V_EXP_DEV  = 00000007            

I_FLOATTMP       000001B4            N.FID          = 00000000            NAM$V_EXP_DIR  = 00000006            

RSXPARSE        - PARSE DIRECTIVE                                22-AUG-1978 00:25:12   VAX-11 MACRO X0.3-11               Page  26

SYMBOL TABLE                                                                                                                    (12)



NAM$V_EXP_NAME = 00000002            R.SEQ          = 00000003            S.FNTY         = 00000004            

NAM$V_EXP_TYPE = 00000001            R.VAR          = 00000002            S.FTYP         = 00000002            

NAM$V_EXP_VER  = 00000000            REPLACE_DEVICE   000003BD R     06   S.NFEN         = 00000010            

NAM$V_GRP_MBR  = 00000013            RETERROR         000003BA R     06   SS$_NOTRAN       ********   X   06   

NAM$V_HIGHVER  = 0000000F            RMS              00000067 R     06   SV_ASTLVL        00000005            

NAM$V_LOWVER   = 0000000E            RMS$_CHN         ********   X   05   SV_DCL           00000002            

NAM$V_NODE     = 00000011            RMS$_DEV         ********   X   05   SV_FLOATAST      0000000A            

NAM$V_QUOTED   = 00000012            RMS$_DIR         ********   X   05   SV_FRESTORE      00000003            

NAM$V_WILDCARD = 00000008            RMS$_DNF         ********   X   05   SV_NOAST         00000004            

NAM$V_WILD_DIR = 00000014            RMS$_DNR         ********   X   05   SV_PENDWAIT      00000006            

NAM$V_WILD_GRP = 00000018            RMS$_FNF         ********   X   05   SV_PWRAST        00000009            

NAM$V_WILD_MBR = 00000019            RMS$_FNM         ********   X   05   SV_RCVAST        00000008            

NAM$V_WILD_NAME= 00000005            RMS$_LNE         ********   X   05   SV_RESTORE       00000000            

NAM$V_WILD_SFD1= 00000019            RMS$_SYN         ********   X   05   SV_TRANSLATE     00000001            

NAM$V_WILD_SFD2= 0000001A            RMS$_TYP         ********   X   05   SV_WAIT          00000007            

NAM$V_WILD_TYPE= 00000004            RMS$_VER         ********   X   05   SYS$GETCHN       ********   X   06   

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

NAM$V_WILD_VER = 00000003            RSX$ASCR501      ********   X   06   SYS$TRNLOG       ********   X   06   

NAM$W_DID        0000002A            RSX$ASCR503      ********   X   06   S_PC             00000020            

NAM$W_DID_NUM    0000002A            RSX$A_DEVTYPE    ********   X   06   S_PS             00000024            

NAM$W_DID_RVN    0000002E            RSX$BLDASCDEV    00000509 RG    06   S_R0             00000000            

NAM$W_DID_SEQ    0000002C            RSX$BLDFNAME     00000468 RG    06   S_R1             00000004            

NAM$W_FID        00000024            RSX$BLDPHYDEV    00000535 RG    06   S_R2             00000008            

NAM$W_FID_NUM    00000024            RSX$C_SUBSYSTEM= 00000006            S_R3             0000000C            

NAM$W_FID_RVN    00000028            RSX$DEALLOCATE   ********   X   06   S_R4             00000010            

NAM$W_FID_SEQ    00000026            RSX$MAPDEVNAM    000005AA RG    06   S_R5             00000014            

NAM$W_PRV_DID    0000003A            RSX$PARS         00000000 RG    06   S_R6             00000018            

NB.DEV         = 00000080            RSX$PARSEDEV     0000056F RG    06   S_TYPE           0000001C            

NB.DIR         = 00000040            RSX$R50CVT1      ********   X   06   W.BATT           00000006            

NB.NAM         = 00000004            RSX$R50CVT3      ********   X   06   W.BFPD           0000000C            

NB.SD1         = 00000100            RSX$RETFNAME     000004AD RG    06   W.BHVR           00000004            

NB.SD2         = 00000200            RSX$SEARCHDEV    ********   X   06   W.BLGH           00000010            

NB.SNM         = 00000020            RSX$TRNLOGNAME   00000674 RG    06   W.BLPD           0000000E            

NB.STP         = 00000010            RSX$TRNLOGONE    00000646 RG    06   W.BLVR           00000002            

NB.SVR         = 00000008            RSX$_ACCVIO    = 00068044            W.BNPD           0000000D            

NB.TYP         = 00000002            RSX$_BADLIBREF = 0006806C            W.BOFF           0000000A            

NB.VER         = 00000001            RSX$_BADSTACK  = 0006804C            W.BPCB           00000000            

NORMAL           0000010F R     06   RSX$_BREAK     = 0006800C            W.BSIZ           00000008            

PARSE            00000214 R     06   RSX$_EXITSTATUS= 00068180            

PARSERRORS       00000000 R     05   RSX$_EXTERNABRT= 0006805C            

PSL_CC         = 00000000            RSX$_ILLINST   = 0006802C            

PSL_CM         = 0000001F            RSX$_INSFDYNMEM= 00068054            

PSL_FPD        = 0000001B            RSX$_IOT       = 00068014            

PSL_FU         = 00000006            RSX$_LIBNOTFND = 00068074            

PSL_TBIT       = 00000004            RSX$_LOADERROR = 0006807C            

P_FAB            00000000            RSX$_NONRSXEMT = 0006801C            

P_FNAME          00000050            RSX$_NOSUCHDEV = 000680C2            

P_NAMBLK         000000D0            RSX$_NOTSKIMG  = 00068064            

P_SIZE           00000108            RSX$_ODDADDR   = 00068034            

QIOV_FILES     = 00000000            RSX$_PMD       = 000680CA            

QIO_FLAGS        0000001C            RSX$_RCVMBXSIZ = 0000012C            

QIO_FUNCTION     0000001A            RSX$_RESERVED  = 00068004            

QIO_IOSB         0000000E            RSX$_TBIT      = 0006803C            

QIO_LUT          00000016            RSX$_TRAP      = 00068024            

QIO_SECONDBLK    0000001E            S.FNAM         = 00000006            

QIO_SIZE         00000022            S.FNB          = 0000001E            

R.FIX          = 00000001            S.FNBW         = 0000000F            

RSXPARSE        - PARSE DIRECTIVE                                22-AUG-1978 00:25:12   VAX-11 MACRO X0.3-11               Page  27

PROGRAM SECTION SYNOPSIS                                                                                                        (12)







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           000001F0      04     NOPIC   USR   CON   ABS   LCL NOSHR   EXE   RD    WRT BYTE  

RSXPURE          00000022      05     NOPIC   USR   CON   REL   LCL NOSHR NOEXE   RD  NOWRT LONG  

RSXCODE          000006A0      06     NOPIC   USR   CON   REL   LCL NOSHR   EXE   RD  NOWRT BYTE  





THERE WERE NO ERRORS OR WARNINGS.

8104. BYTES LEFT IN FREE MEMORY POOL.

44. BYTES OF RECLAIMED MEMORY.

OBJ$:RSXPARSE,LIS$:RSXPARSE/-SP=SRC$:C,RSXPARSE

41 MLB DIR RDS - 852 GETS TO DEFINE 29 MACROS. 53 INTER. FILE WRITES. 

