RSXSTART        - RSX INITIALIZATION, LOAD AND GO ROUTINES       22-AUG-1978 00:30:46   VAX-11 MACRO X0.3-11               Page   0

TABLE OF CONTENTS   



   (2)     165  RSX$RUNIMAGE - RUN COMPATIBILITY MODE IMAGE

   (11)    872  OPEN_SYS_DEVS - OPEN SYS$DEVICES

   (12)    975  RSX$ERROR - EXCEPTION HANDLER FOR RSX ERRORS

RSXSTART        - RSX INITIALIZATION, LOAD AND GO ROUTINES       22-AUG-1978 00:30:46   VAX-11 MACRO X0.3-11               Page   1

00.2                                                                                                                             (1)



                                     0000     1 	.TITLE	RSXSTART - RSX INITIALIZATION, LOAD AND GO ROUTINES

                                     0000     2 	.IDENT	/00.2/		;

                                     0000     3 ;

                                     0000     4 ; COPYRIGHT (C) 1977

                                     0000     5 ; DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASSACHUSETTS 01754

                                     0000     6 ;

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

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

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

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

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

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

                                     0000    13 ; REMAIN IN DEC.

                                     0000    14 ;

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

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

                                     0000    17 ; CORPORATION.

                                     0000    18 ;

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

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

                                     0000    21 

                                     0000    22 ;++

                                     0000    23 ; FACILITY:

                                     0000    24 ;

                                     0000    25 ;	STARLET RSX11M COMPATIBILITY MODE EMULATOR

                                     0000    26 ;

                                     0000    27 ; ABSTRACT:

                                     0000    28 ;

                                     0000    29 ;	RSX INITIALIZATION, LOADER AND IMAGE INITAILIZATION.

                                     0000    30 ;

                                     0000    31 ; AUTHOR:

                                     0000    32 ;

                                     0000    33 ; 	 R. HEINEN 2-NOV-76 

                                     0000    34 ;--

                                     0000    35 ;

                                     0000    36 ; EXTERNAL SYMBOLS

                                     0000    37 ;

                                     0000    38 	$CORSXDEF		; DEFINE RSX SYMBOLS

                                     0000    39 	$DEVDEF			; DEFINE DEVICE CHARACTERISTICS

                                     0000    40 	$JPIDEF			; DEFINE GETJPI SYMBOLS

                                     0000    41 	IOERR$			; DEFINE I/O ERROR CODES

                                     0000    42 	LBLDF$			; DEFINE RSX LABEL

                                     0000    43  

                                     0000    44 ;

                                     0000    45 ; DEFINE RMS SYMBOLS

                                     0000    46 ;

                                     0000    47  

                                     0000    48 	.IF NDF	C$$ORE

                                     0000    49  

                                     0000    50 	$FABDEF			; DEFINE FAB

                                     0000    51 	$RABDEF			; DEFINE RAB

                                     0000    52  

                                     0000    53 	.ENDC

                                     0000    54  

                                     0000    55 ;

                                     0000    56 ; LOCAL SYMBOLS

                                     0000    57 ;

RSXSTART        - RSX INITIALIZATION, LOAD AND GO ROUTINES       22-AUG-1978 00:30:46   VAX-11 MACRO X0.3-11               Page   2

00.2                                                                                                                             (1)



                                     0000    58 ; OFFSETS ON AP FOR CALL ARGS

                                     0000    59 ;

                           00000004  0000    60 IMAGECHAN=4			; CHANNEL ON WHICH IMAGE FILE IS OPEN

                           00000008  0000    61 CMDLIN=8			; DESC OF COMMAND LINE

                                     0000    62 ;

                                     0000    63 ; LOCAL STORAGE

                                     0000    64 ;

                                 00000000    65 	.PSECT	RSXPURE,LONG,NOEXE,NOWRT

                           00000018' 0000    66 ASSIGNER:	.LONG	20$-10$

                           00000008' 0004    67 		.LONG	10$

55 21 44 41 21 20 44 41 21 58 53 52  0008    68 10$:	.ASCII	/RSX!AD !AD!UW: LUN = !UB/

42 55 21 20 3D 20 4E 55 4C 20 3A 57  0014       

                                     0020    69 20$:	

                           00000009' 0020    70 COMMONEFN:	.LONG	20$-10$

                           00000028' 0024    71 		.LONG	10$

         4E 46 45 4D 4F 43 58 53 52  0028    72 10$:		.ASCII	/RSXCOMEFN/

                                     0031    73 20$:

                                 00000000    74 	.PSECT	RSXCODE,NOWRT

RSXSTART        - RSX INITIALIZATION, LOAD AND GO ROUTINES       22-AUG-1978 00:30:46   VAX-11 MACRO X0.3-11               Page   3

00.2            RSX$RUNIMAGE - RUN COMPATIBILITY MODE IMAGE                                                                      (2)



                                     0000    76 	.SBTTL	RSX$RUNIMAGE - RUN COMPATIBILITY MODE IMAGE

                                     0000    77 ;++

                                     0000    78 ; RSX$RUNIMAGE - RUN COMPATIBILITY MODE IMAGE

                                     0000    79 ;

                                     0000    80 ; FUNCTIONAL DESCRIPTION:

                                     0000    81 ;

                                     0000    82 ; THIS ROUTINE IS THE ENTRY INTO THE RSX AME. ITS JOB IS TO INITIALIZE THE

                                     0000    83 ; PER IMAGE IMPURE DATA BASE AT RSX$A_IMPURE, LOAD THE SPECIFIED IMAGE

                                     0000    84 ; AND ENTER THE IMAGE RUNNING IN COMPATIBILITY MODE.

                                     0000    85 ;

                                     0000    86 ;	1. THE IMAGE DATA BASE IS SET UP.

                                     0000    87 ;	2. THE PROCESS PERMANENT DEVICE/FILES ARE INITIALIZED.

                                     0000    88 ;	3. THE IMAGE IS LOADED.

                                     0000    89 ;	4. THE PRE-ASSIGNED DEVICES ARE ASSIGNED.

                                     0000    90 ;	5. ANY SPECIFIED RESIDENT LIBRARIES,COMMONS ARE MAPPED.

                                     0000    91 ;	7. COMPATIBILITY MODE EXCEPTIONS ARE ENABLED.

                                     0000    92 ;	8. THE IMAGE IS STARTED.

                                     0000    93 ;

                                     0000    94 ; CALLING SEQUENCE:

                                     0000    95 ;

                                     0000    96 ;	CALLS	#3,RSX$RUNIMAGE

                                     0000    97 ;

                                     0000    98 ;	AP =	.LONG	2

                                     0000    99 ;		.LONG	IMAGE FILE CHANNEL (USER MODE)

                                     0000   100 ;		.LONG	0,0	COMMAND LINE DESC.

                                     0000   101 ;

                                     0000   102 ; OUTPUTS:

                                     0000   103 ;

                                     0000   104 ;	R0 = STATUS OF THE RUN.

                                     0000   105 ;

                                     0000   106 ;	IF R0 # SS$_NORMAL, THE APPROPRIATE TERMINATION MESSAGE

                                     0000   107 ;		HAS BEEN PRINTED ON "ERROR". 

                                     0000   108 ;--

                                     0000   109  

                                     0000   110 RSX$RUNIMAGE::				; RSX ENTRY POINT

                               0FFC  0000   111 	.WORD	^M<R2,R3,R4,R5,R6,R7,R8,R9,R10,R11>

                                     0002   112  

                                     0002   113 	.IF DF	C$$ORE

                                     0002   114  

            58   00000000'EF     7D  0002   115 	MOVQ	RSX$A_REGSAV,R8		; RESTORE REGISTER CONTEXT

            5A   00000008'EF     7D  0009   116 	MOVQ	RSX$A_REGSAV+8,R10	; ...

            03   00000000'EF     E9  0010   117 	BLBC	RSX$A_RESTART,2$	; IF LBC, STARTING NEW IMAGE

                          03C2   31  0017   118 	BRW	ENTERIMAGE		; ENTER CME IMAGE DIRECTLY

                                     001A   119 2$:					;

                                     001A   120  

                                     001A   121 	.ENDC

                                     001A   122  

                                     001A   123 ;

                                     001A   124 ; SET UP HIGHEST LEVEL EXCEPTION ROUTINE

                                     001A   125 ;

            6D       046F'CF     9E  001A   126 	MOVAB	W^RSX$ERROR,(FP)	; INSERT EXCEPTION HANDLER ON STACK

                                     001F   127 ;

                                     001F   128 ; INIT AND ADDRESS THIS IMAGE'S IMPURE DATA BASE.

                                     001F   129 ;

            5A       0000'CF     9E  001F   130 	MOVAB	W^RSX$A_IMPURE,R10	; ADDRESS IMPURE DATA BASE

                                     0024   131  

                                     0024   132 	.IF NDF	C$$ORE

RSXSTART        - RSX INITIALIZATION, LOAD AND GO ROUTINES       22-AUG-1978 00:30:46   VAX-11 MACRO X0.3-11               Page   4

00.2            RSX$RUNIMAGE - RUN COMPATIBILITY MODE IMAGE                                                                      (2)



                                     0024   133  

                                     0024   134 	CLRQ	-(SP)			; MAKE SPACE FOR ARGUMENTS

                                     0024   135 	MOVL	SP,R2			; COPY ADDRESS OF AREA

                                     0024   136 	MOVL	R10,(R2)		; SET LOW LIMIT

                                     0024   137 	ASHL	#30,#1,4(R2)		; SET UP HIGH LIMIT

                                     0024   138 	DECL	4(R2)			;

                                     0024   139 	$DELTVA_S (R2)			; DELETE THE SPACE

                                     0024   140 	BLBS	R0,10$			; IF ERROR THEN BRANCH

                                     0024   141 5$:	RET	

                                     0024   142 10$:	MOVAB	I_LENGTH(R10),4(R2)	; CREATE SPACE FOR IMPURE AREA

                                     0024   143 	$CRETVA_S (R2),(R2)		; GET IT

                                     0024   144 	BLBC	R0,5$			; IF ERROR THEN BRANCH

                                     0024   145 	POPR	#^M<R0,R1>		; REMOVE ARGUMENT BLOCK

                                     0024   146  

                                     0024   147 	.IFF

                                     0024   148  

                          01     11  0024   149 	BRB	20$			; CONTINUE INITIALIZATION

                                     0026   150 5$:					; BAILOUT POINT

                                 04  0026   151 	RET				;

                                     0027   152  

                                     0027   153 	.ENDC

                                     0027   154  

                                     0027   155  

                                     0027   156 ;

                                     0027   157 ; SAVE CALLER'S FP FOR ERROR BAILOUT

                                     0027   158 ;

                                     0027   159 20$:					;

       018C CA            5D     D0  0027   160 	MOVL	FP,I_BAILOUTFP(R10)	; 

                                     002C   161 ;

                                     002C   162 ; DECLARE TERMINATION HANDLER

                                     002C   163 ;

       0004'CF       0000'CF     9E  002C   164 	MOVAB	W^RSX$FORCEEXIT,W^RSX$A_EXITBLOCK+4; SET UP EXIT HANDLER ADDRESS

                                     0033   165 	$DCLEXH_S	W^RSX$A_EXITBLOCK; SET UP EXIT HANDLER

            E5            50     E9  003E   166 	BLBC	R0,5$			; IF ERROR THEN BRANCH

                     0000'CF     D4  0041   167 	CLRL	W^RSX$A_EXITBLOCK	; SET IT UP SO THIS IS THE LAST SERIVCE

                                     0045   168 ;

                                     0045   169 ; SET UP POOL AND OTHER LIST HEADS

                                     0045   170 ;

            50       01F0 CA     9E  0045   171 	MOVAB	<<I_LENGTH+8>&^X0FFF8>(R10),R0; SET UP LINK TO POOL

       0000'CF            50     D0  004A   172 	MOVL	R0,W^RSX$A_POOL		; INSERT ADDRESS OF FIRST ENTRY

                          80     D4  004F   173 	CLRL	(R0)+			; SET NO NEXT ENTRY

                                     0051   174  

                                     0051   175 	.IF NDF	C$$ORE

                                     0051   176  

                                     0051   177 	MOVZWL	#<512-<<I_LENGTH+8>&^X0FFF8>>,(R0); INSERT SIZE

                                     0051   178  

                                     0051   179 	.IFF

                                     0051   180  

            60       07AC 8F     3C  0051   181 	MOVZWL	#CO_POOLSIZE-<<I_LENGTH+8>&^C7>,(R0) ; INSERT SIZE

                                     0056   182  

                                     0056   183 	.ENDC

                                     0056   184  

                                     0056   185 ;

                                     0056   186 ; SET UP AST QUEUE

                                     0056   187 ;

       00A0 CA       00A0 CA     9E  0056   188 	MOVAB	I_ASTQUEUE(R10),I_ASTQUEUE(R10);

       00A4 CA       00A0 CA     9E  005D   189 	MOVAB	I_ASTQUEUE(R10),I_ASTQUEUE+4(R10);

RSXSTART        - RSX INITIALIZATION, LOAD AND GO ROUTINES       22-AUG-1978 00:30:46   VAX-11 MACRO X0.3-11               Page   5

00.2            RSX$RUNIMAGE - RUN COMPATIBILITY MODE IMAGE                                                                      (2)



                                     0064   190 ;

                                     0064   191 ; SET UP AST CONTEXT POOL

                                     0064   192 ;

       00A8 CA       00A8 CA     9E  0064   193 	MOVAB	I_ASTPOOL(R10),I_ASTPOOL(R10);

       00AC CA       00A8 CA     9E  006B   194 	MOVAB	I_ASTPOOL(R10),I_ASTPOOL+4(R10)

                                     0072   195 ;

                                     0072   196 ; SET UP FCB POOL

                                     0072   197 ;

       00B0 CA       00B0 CA     9E  0072   198 	MOVAB	I_FCBPOOL(R10),I_FCBPOOL(R10);

       00B4 CA       00B0 CA     9E  0079   199 	MOVAB	I_FCBPOOL(R10),I_FCBPOOL+4(R10);

                                     0080   200 ;

                                     0080   201 ; SET UP LOGICAL NAME LIST

                                     0080   202 ;

       00B8 CA       00B8 CA     9E  0080   203 	MOVAB	I_LOGNAME(R10),I_LOGNAME(R10);

       00BC CA       00B8 CA     9E  0087   204 	MOVAB	I_LOGNAME(R10),I_LOGNAME+4(R10);

                                     008E   205 ;

                                     008E   206 ; SAVE COMMAND LINE DESCRIPTER

                                     008E   207 ;

       00C0 CA         08 AC     7D  008E   208 	MOVQ	CMDLIN(AP),I_CMDSZ(R10); SIZE AND ADDRESS

                                     0094   209 ;

                                     0094   210 ; SET UP HIGH LIMIT OF ADR0

                                     0094   211 ;

            01            10     78  0094   212 	ASHL	#16,#1,I_HIGHSIZE(R10)

                     00D0 CA         0097       

RSXSTART        - RSX INITIALIZATION, LOAD AND GO ROUTINES       22-AUG-1978 00:30:46   VAX-11 MACRO X0.3-11               Page   6

00.2            RSX$RUNIMAGE - RUN COMPATIBILITY MODE IMAGE                                                                      (3)



                                     009A   214 ;

                                     009A   215 ; FROM NOW ON, ERRORS WILL CAUSE A TRIP THROUGH "RSX$INTERNEXIT"

                                     009A   216 ;

                                     009A   217 ;

                                     009A   218 ; ASSIGN PROCESS PERMANENT DEVICES INPUT,COMMAND,OUTPUT AND ERROR

                                     009A   219 ;

                                     009A   220 ASSIGNFILES:				;

                                     009A   221 ;

                                     009A   222 ; ASSIGN SYS$INPUT

                                     009A   223 ;

            58       0000'CF     9E  009A   224 	MOVAB	W^RSX$A_TIIDEV,R8	; ADDRESS LUT ENTRY FOR TI INPUT

         0A A8            02     88  009F   225 	BISB	#1@LUTV_TI,LUT_FLAGS(R8); SET TI DEVICE

            52       0000'CF     9E  00A3   226 	MOVAB	W^RSX$T_SYSINPUT,R2	; GET ADDRESS OF LOGICAL NAME

                          0360   30  00A8   227 	BSBW	OPEN_SYS_DEVS		; OPEN SYS$INPUT DEVICE

       0000'CF            10     28  00AB   228 	MOVC3	#16,W^RSX$T_SYSINPUT,LUT_REALNAME(R8) ;

                       20 A8         00B0       

                                     00B2   229 ;

                                     00B2   230 ; ASSIGN SYS$OUTPUT

                                     00B2   231 ;

            58       0000'CF     9E  00B2   232 	MOVAB	W^RSX$A_TIODEV,R8	; ADDRESS LUT FOR OUTPUT

         0A A8            02     88  00B7   233 	BISB	#1@LUTV_TI,LUT_FLAGS(R8); SET TI DEVICE

            52       0000'CF     9E  00BB   234 	MOVAB	W^RSX$T_SYSOUTPUT,R2	; GET ADDRESS OF LOGICAL NAME

                          0348   30  00C0   235 	BSBW	OPEN_SYS_DEVS		; OPEN SYS$OUTPUT

       0000'CF            10     28  00C3   236 	MOVC3	#16,W^RSX$T_SYSOUTPUT,LUT_REALNAME(R8) ;

                       20 A8         00C8       

                                     00CA   237 ;

                                     00CA   238 ; ASSIGN SYS$ERROR

                                     00CA   239 ;

            58       0000'CF     9E  00CA   240 	MOVAB	W^RSX$A_CLDEV,R8	; ADDRESS LUT ENTRY FOR ERROR - CO

            52       0000'CF     9E  00CF   241 	MOVAB	W^RSX$T_SYSERROR,R2	; GET ADDRESS OF LOGICAL NAME

                          0334   30  00D4   242 	BSBW	OPEN_SYS_DEVS		; OPEN SYS$ERROR

       0000'CF            10     28  00D7   243 	MOVC3	#16,W^RSX$T_SYSERROR,LUT_REALNAME(R8) ;

                       20 A8         00DC       

                                     00DE   244 ;

                                     00DE   245 ; ASSIGN SYS$COMMAND

                                     00DE   246 ;

            58       0000'CF     9E  00DE   247 	MOVAB	W^RSX$A_CODEV,R8	; ADDRESS LUT ENTRY FOR COMMAND - CO

                                     00E3   248 ;	MOVAB	W^RSX$T_SYSCMD,R2	; GET ADDRESS OF LOGICAL NAME

            52       0000'CF     9E  00E3   249 	MOVAB	W^RSX$T_SYSERROR,R2	; 

                          0320   30  00E8   250 	BSBW	OPEN_SYS_DEVS		; OPEN SYS$COMMAND

       0000'CF            10     28  00EB   251 	MOVC3	#16,W^RSX$T_SYSERROR,LUT_REALNAME(R8) ;

                       20 A8         00F0       

                                     00F2   252 ;

                                     00F2   253 ; SET UP OV DEVICE

                                     00F2   254 ;

                                     00F2   255  

                                     00F2   256 	.IF NDF	C$$ORE

                                     00F2   257  

                                     00F2   258 	MOVAB	W^RSX$A_OVDEV,R8	; ADDRESS LUT ENTRY FOR OV:

                                     00F2   259 	INSQUE	(R8),@I_LOGNAME+4(R10)	; INSERT ON LOG NAME LIST

                                     00F2   260 	MOVL	IMAGECHAN(AP),LUT_CHAN(R8); INSERT CHANNEL PASSED BY CALLER

                                     00F2   261 	MOVAB	LUT_CHAR(R8),I_SCRATCH+4(R10); SET UP CHARS DESC.

                                     00F2   262 	MOVZBL	#LUT_INFONAME-LUT_CHAR,I_SCRATCH(R10);

                                     00F2   263 	$GTCHAN_S	LUT_CHAN(R8),I_SCRATCH(R10),I_SCRATCH(R10)

                                     00F2   264 	BLBC	R0,READLABEL		; DONE IF ERROR

                                     00F2   265 	BSBW	RSX$MAPDEVNAM		; BUILD DATA AREAS IN LUT FOR OV:

                                     00F2   266  

RSXSTART        - RSX INITIALIZATION, LOAD AND GO ROUTINES       22-AUG-1978 00:30:46   VAX-11 MACRO X0.3-11               Page   7

00.2            RSX$RUNIMAGE - RUN COMPATIBILITY MODE IMAGE                                                                      (3)



                                     00F2   267 	.ENDC

                                     00F2   268  

                                     00F2   269 ;

                                     00F2   270 ; ASSIGN SY:

                                     00F2   271 ;

            58       0000'CF     9E  00F2   272 	MOVAB	W^RSX$A_SYDEV,R8	; ADDRESS LUT ENTRY FOR SY

         30 A8       5953 8F     B0  00F7   273 	MOVW	#^A/SY/,LUT_INFONAME(R8) ; ASSUME SY0

            6A       0000'CF     9A  00FD   274 	MOVZBL	W^RSX$T_SYSDISK,I_SCRATCH(R10) ;

         04 AA       0001'CF     9E  0102   275 	MOVAB	W^RSX$T_SYSDISK+1,I_SCRATCH+4(R10) ;

            52            02     D0  0108   276 	MOVL	#2,R2			; SETUP TRANSLATION COUNTER

                                     010B   277 50$:					;

                          FEF2'  30  010B   278 	BSBW	RSX$TRNLOGONE		; TRANSLATE THE NAME

            03            50     E9  010E   279 	BLBC	R0,60$			; CONTINUE UNTIL ERROR OR DONE

            F7            52     F5  0111   280 	SOBGTR	R2,50$			;

                                     0114   281 60$:					;

                          FEE9'  30  0114   282 	BSBW	RSX$ASSIGN		; ASSIGN DEVICE

RSXSTART        - RSX INITIALIZATION, LOAD AND GO ROUTINES       22-AUG-1978 00:30:46   VAX-11 MACRO X0.3-11               Page   8

00.2            RSX$RUNIMAGE - RUN COMPATIBILITY MODE IMAGE                                                                      (4)



                                     0117   284 ;

                                     0117   285 ; READ THE LABEL BLOCKS

                                     0117   286 ;

                                     0117   287 READLABEL:

                                     0117   288  

                                     0117   289 	.IF NDF	C$$ORE

                                     0117   290  

                                     0117   291 	CLRQ	I_SCRATCH(R10)		; DELETE THE TASK VIRTUAL ADDRESS

                                     0117   292 	MNEGW	#1,I_SCRATCH+4(R10)	;

                                     0117   293 	$DELTVA_S	I_SCRATCH(R10)	; 

                                     0117   294 ;

                                     0117   295 ; LOAD THE IMAGE LABEL BLOCKS INTO IMPURE STORAGE

                                     0117   296 ;

                                     0117   297 	MOVZWL	#<3*512>,R1		; ALLOCATE THE SPACE

                                     0117   298 	BSBW	RSX$ALLOCATE		;

                                     0117   299 	MOVL	R0,R2			; COPY BLOCK ADDRESS

                                     0117   300 ;

                                     0117   301 ; READ IN THE LABEL BLOCKS

                                     0117   302 ;

                                     0117   303 	$QIOW_S	#0,W^RSX$A_OVDEV+LUT_CHAN,#IO$_READVBLK,I_SCRATCH(R10),,,-

                                     0117   304 	(R2),#<3*512>,#1		; READ LABEL BLOCKS

                                     0117   305 	BLBC	R0,10$			; IF LOW CLEAR THEN ERROR

                                     0117   306 	MOVL	I_SCRATCH(R10),R0	; GET IOSB STATUS

                                     0117   307 	BLBS	R0,CHECKLABEL		; IF LOW SET THEN SUCCESS

                                     0117   308 ;

                                     0117   309 ; ERROR ON LABEL BLOCK LOAD

                                     0117   310 ;

                                     0117   311 10$:	BRW	RSX$INTERNEXIT		; EXIT RUN

                                     0117   312  

                                     0117   313 	.IFF

                                     0117   314  

            52   00000000'EF     9E  0117   315 	MOVAB	RSX$A_LABEL,R2		; POINT TO PRELOADED LABEL BLOCK

                                     011E   316  

                                     011E   317 	.ENDC

                                     011E   318  

RSXSTART        - RSX INITIALIZATION, LOAD AND GO ROUTINES       22-AUG-1978 00:30:46   VAX-11 MACRO X0.3-11               Page   9

00.2            RSX$RUNIMAGE - RUN COMPATIBILITY MODE IMAGE                                                                      (5)



                                     011E   320 ;

                                     011E   321 ; CHECK LABEL DATA FOR IMAGE FORMAT 

                                     011E   322 ;

                                     011E   323 CHECKLABEL:

       014E CA         18 A2     B0  011E   324 	MOVW	L$BFLG(R2),I_STATE+2(R10); SAVE TASK STATUS

         18 A2       6220 8F     B3  0124   325 	BITW	#TS$NHD!TS$ACP!TS$NET!TS$RES,L$BFLG(R2); PROPER FLAGS?

                          0D     12  012A   326 	BNEQ	BADIMAGE		; IF NEQ THEN ERROR

                       12 A2     B5  012C   327 	TSTW	L$BOFF(R2)		; OFFSET IN PARTITION=0?

                          08     12  012F   328 	BNEQ	BADIMAGE		; BR IF ERROR

         08 A2       1FFF 8F     B3  0131   329 	BITW	#^X01FFF,L$BSA(R2)	; 8K BOUNDRY?

                          0A     13  0137   330 	BEQL	READHEADER		; IF YES THEN READ HEADER

                                     0139   331 ;

                                     0139   332 ; IMPROPER IMAGE FORMAT

                                     0139   333 ;

                                     0139   334 BADIMAGE:				; IMAGE FORMAT IS BAD

            50   00068064 8F     D0  0139   335 	MOVL	#RSX$_NOTSKIMG,R0	; SET ERROR AS FORMAT 

                          FEBD'  31  0140   336 	BRW	RSX$INTERNEXIT		; EXIT RUN

RSXSTART        - RSX INITIALIZATION, LOAD AND GO ROUTINES       22-AUG-1978 00:30:46   VAX-11 MACRO X0.3-11               Page  10

00.2            RSX$RUNIMAGE - RUN COMPATIBILITY MODE IMAGE                                                                      (6)



                                     0143   338 ;

                                     0143   339 ; READ THE HEADER

                                     0143   340 ;

                                     0143   341 READHEADER:				;

                     00D8 CA     D4  0143   342 	CLRL	I_ADR0+ADR_LOWLIM(R10)	; SET ADR0 LOW LIM AS 0

                          53     D4  0147   343 	CLRL	R3			; 

       00EA C2         10 A2     A1  0149   344 	ADDW3	L$BMXZ(R2),L$BEXT(R2),R3; CALC NEEDED SIZE 

                          53         014F       

                          E7     13  0150   345 	BEQL	BADIMAGE		; IF EQL THEN ILLEGAL

            53       0400 8F     B1  0152   346 	CMPW	#1024,R3		; IN RANGE?

                          E0     1B  0157   347 	BLEQU	BADIMAGE		; IF LSSU THEN NO

            53       0040 8F     A4  0159   348 	MULW	#64,R3			; SET INITIAL AND CURRENT ADR0 SIZE

       00DC CA            53     D0  015E   349 	MOVL	R3,I_ADR0+ADR_HIGHLIM(R10); SAVE AS CURRENT SIZE

                          D4     13  0163   350 	BEQL	BADIMAGE

       00CC CA       00DC CA     D0  0165   351 	MOVL	I_ADR0+ADR_HIGHLIM(R10),I_INISIZE(R10); SAVE ANS CURRENT SIZE

                                     016C   352  

                                     016C   353 	.IF NDF	C$$ORE

                                     016C   354  

                                     016C   355 	$CRETVA_S	I_ADR0+ADR_LOWLIM(R10),I_SCRATCH+8(R10)

                                     016C   356 	BLBC	R0,47$			; IF LOW CLEAR THEN ERROR

                                     016C   357  

                                     016C   358 	.IFF

                                     016C   359  

            5B         08 A2     3C  016C   360 	MOVZWL	L$BSA(R2),R11		; GET STARTING VIRTUAL ADDRESS

            54            5B     D0  0170   361 	MOVL	R11,R4			; COPY BASE ADDRESS OF TASK

                                     0173   362  

                                     0173   363 	.ENDC

                                     0173   364  

                                     0173   365 ;

                                     0173   366 ; READ THE HEADER AND TASK IMAGE

                                     0173   367 ;

            53         0E A2     3C  0173   368 	MOVZWL	L$BLDZ(R2),R3		; CALC ROOT SEQ LOAD SIZE

            53       0040 8F     A4  0177   369 	MULW	#64,R3			;

            55       00EE C2     3C  017C   370 	MOVZWL	L$BHRB(R2),R5		; GET RELITIVE BLOCK TO HEADER

            55            01     C1  0181   371 	ADDL3	#1,R5,I_IMAGEVBN(R10)	; SAVE IT FOR OVERLAYING

                     00D4 CA         0184       

            5B         08 A2     3C  0187   372 	MOVZWL	L$BSA(R2),R11		; SET STARTING VIRTUAL TO LOAD

                          AC     12  018B   373 	BNEQ	BADIMAGE		; IF NEQ THEN BAD IMAGE

            54            5B     D0  018D   374 	MOVL	R11,R4			; ADDRESS PLACE TO BEGIN LOAD

                          55     D4  0190   375 	CLRL	R5			; START FROM IMAGE VBN

                                     0192   376  

                                     0192   377 	.IF NDF	C$$ORE

                                     0192   378  

                                     0192   379 	CLRL	I_SCRATCH+4(R10)	; SET UP EFN

                                     0192   380 	BSBW	RSX$OVERLAY		; TREAT AS OVERLAY

                                     0192   381 	BLBC	R0,47$			; IF LBC ERROR

                                     0192   382  

                                     0192   383 	.ENDC

                                     0192   384  

                                     0192   385 ;

                                     0192   386 ; VERIFY GUARD WORD AND LUN/WINDOW BLOCKS

                                     0192   387 ;

            50         3A A4     3C  0192   388 	MOVZWL	H.GARD(R4),R0		; ADDRESS GUARD WORD

       00C8 CA            50     D0  0196   389 	MOVL	R0,I_GARD(R10)		; SAVE GUARD WORD

            2E            50     E8  019B   390 	BLBS	R0,45$			; IF LOW SET THEN ERROR

            50            54     C1  019E   391 	ADDL3	R4,R0,I_GARD(R10)	; SAVE ADDRESS OF GARD WORD

                     00C8 CA         01A1       

RSXSTART        - RSX INITIALIZATION, LOAD AND GO ROUTINES       22-AUG-1978 00:30:46   VAX-11 MACRO X0.3-11               Page  11

00.2            RSX$RUNIMAGE - RUN COMPATIBILITY MODE IMAGE                                                                      (6)



            51         3C A4     9A  01A4   392 	MOVZBL	H.NLUN(R4),R1		; GET THE NUMBER OF ALLOWED LUNS

            51            04     C4  01A8   393 	MULL	#4,R1			; CONVERT TO BYTES

            51            3E     C0  01AB   394 	ADDL	#H.LUN,R1		; ADDRESS END OF TABLE

            53         24 A4     3C  01AE   395 	MOVZWL	H.WND(R4),R3		; GET WINDOW ADDRESS

            53            51     B1  01B2   396 	CMPW	R1,R3			; ADDRESS OF WINDOWS EQL TO END OF LUNS?

                          15     12  01B5   397 	BNEQ	45$			; IF NEQ THEN ERROR

            54            53     C1  01B7   398 	ADDL3	R3,R4,R5		; ADDRESS START OF WINDOWS POINTER

                          55         01BA       

            55            65     3C  01BB   399 	MOVZWL	(R5),R5			; GET NUMBER OF WINDOWS

            55            10     C4  01BE   400 	MULL	#W.BLGH,R5		; CALC SIZE OF ALLOCATION

            55            12     C0  01C1   401 	ADDL	#18,R5			; ADD SPACE FOR REGISTER SAVE AREA

            55            53     C0  01C4   402 	ADDL	R3,R5			; ADD IN ADDRESS OF WINDOWS

            50            55     D1  01C7   403 	CMPL	R5,R0			; END OF NEEDED SPACE THE GUARD WORD?

                          0A     13  01CA   404 	BEQL	50$			; IF EQL THEN PROPER HEADER

                                     01CC   405 ;

                                     01CC   406 ; BAD HEADER

                                     01CC   407 ;

            50   00068064 8F     D0  01CC   408 45$:	MOVL	#RSX$_NOTSKIMG,R0	; SET ERROR CODE

                          FE2A'  31  01D3   409 47$:	BRW	RSX$INTERNEXIT		; EXIT RUN

                                     01D6   410 ;

                                     01D6   411 ; SET UP HEADER

                                     01D6   412 ;

                          04     BB  01D6   413 50$:	PUSHR	#^M<R2>			; SAVE ADDRESS OF THE LABEL

RSXSTART        - RSX INITIALIZATION, LOAD AND GO ROUTINES       22-AUG-1978 00:30:46   VAX-11 MACRO X0.3-11               Page  12

00.2            RSX$RUNIMAGE - RUN COMPATIBILITY MODE IMAGE                                                                      (7)



                                     01D8   415 ;

                                     01D8   416 ; LOAD RESIDENT LIBRARIES AND COMMON BLOCKS

                                     01D8   417 ;

                                     01D8   418 LIBRARIES:

                                     01D8   419  

                                     01D8   420 	.IF NDF	C$$ORE

                                     01D8   421  

                                     01D8   422 	MOVAB	I_ADR0+ADR_SIZE(R10),R9	; ADDRESS START OF LIB DESCS.

                                     01D8   423 	MOVAB	L$BLIB-<R$LDAT+6>(R2),R8; ADDRESS REQUEST DESCS.

                                     01D8   424 NXTLIB:	ADDL	#R$LDAT+6,R8		; POINT TO NEXT LIB DESC

                                     01D8   425 	TSTL	R$LNAM(R8)		; DONE?

                                     01D8   426 	BNEQ	10$			; IF NEQ THEN NO

                                     01D8   427 	BRW	GETINFO			; CONTINUE WITH TASK LOAD

                                     01D8   428 5$:	BRW	20$			;

                                     01D8   429 ;

                                     01D8   430 ; MAP THE REQUESTED LIBRARY

                                     01D8   431 ;

                                     01D8   432 10$:	TSTW	R$LOFF(R8)		; OFFSET 0 ( NO PLAS )

                                     01D8   433 	BNEQ	5$			; IF NEQ THEN ERROR

                                     01D8   434 	CMPW	R$LMXZ(R8),R$LLDZ(R8)	; LOAD AND MAX THE SAME?

                                     01D8   435 	BNEQ	5$			; IF NEQ THEN ERROR

                                     01D8   436 	CMPW	R$LSA(R8),I_ADR0+ADR_HIGHLIM(R10); BASE OVERLAP IMAGE?

                                     01D8   437 	BLSSU	5$			; IF EQL THEN ERROR

                                     01D8   438 ;

                                     01D8   439 ; ALLOCATE THE FAB AND BUFFER 

                                     01D8   440 ;

                                     01D8   441 	MOVZWL	#FAB$C_BLN+512,R1	; SET SIZE TO ALLOCATE

                                     01D8   442 	BSBW	RSX$ALLOCATE		; ALLOCATE IT

                                     01D8   443 	MOVL	R0,R6			; COPY ADDRESS OF THE SPACE

                                     01D8   444 	MOVC5	#0,(R0),#0,#FAB$C_BLN,(R0); ZERO SPACE FOR FAB

                                     01D8   445 	MOVB	#FAB$C_BLN,FAB$B_BLN(R6); SET UP FAB

                                     01D8   446 	MOVB	#FAB$C_BID,FAB$B_BID(R6);

                                     01D8   447 	MOVAB	W^RSX$T_LIBDEF,R0	; ADDRESS  DEFAULT NAME STRING

                                     01D8   448 	MOVB	(R0)+,FAB$B_DNS(R6)	; INSERT SIZE OF DEFUALT NAME

                                     01D8   449 	MOVL	R0,FAB$L_DNA(R6)	; INSERT ADDRESS

                                     01D8   450 	MOVL	R8,R4			; ADDRESS REQUEST NAME IN RAD50

                                     01D8   451 	MOVAB	I_SCRATCH+8(R10),R7	; ADDRESS TARGET

                                     01D8   452 	MOVL	R7,FAB$L_FNA(R6)	; INSERT ADDRESS OF NAME

                                     01D8   453 	BSBW	RSX$R50CVT2		; CONVERT NAME TO ASCII

                                     01D8   454 	SUBL	FAB$L_FNA(R6),R7	; CALC SIZE OF NAME

                                     01D8   455 	MOVB	R7,FAB$B_FNS(R6)	; INSERT SIZE

                                     01D8   456 	MOVB	#FAB$M_GET,FAB$B_SHR(R6); REQUEST READ SHARED

                                     01D8   457 	ASHL	#FAB$V_UFO,#1,FAB$L_FOP(R6); USER FILE

                                     01D8   458 	$OPEN	FAB=R6			; OPEN LIBRARY FILE

                                     01D8   459 	BLBC	R0,17$			; BR IF ERROR

                                     01D8   460 	MOVAB	FAB$C_BLN(R6),R5	; ADDRESS BLOCK BUFFER

                                     01D8   461 	$QIOW_S	#0,FAB$L_STV(R6),#IO$_READVBLK,I_SCRATCH(R10),,,-

                                     01D8   462 		(R5),#512,#1		;

                                     01D8   463 	BLBC	R0,15$			; BR IF ERROR

                                     01D8   464 	MOVZWL	I_SCRATCH(R10),R0	; GET IOSB ERROR

                                     01D8   465 	BLBS	R0,25$			; BR IF SUCCESS

                                     01D8   466 15$:	BRW	RSX$INTERNEXIT		; EXIT RUN

                                     01D8   467 17$:	MOVL	#RSX$_LIBNOTFND,R0	; INSERT STATUS CODE

                                     01D8   468 	BRB	15$			;

                                     01D8   469 20$:	MOVL	#RSX$_NOTSKIMG,R0	; SET ERROR CODE

                                     01D8   470 	BRB	15$			; CONTINUE

                                     01D8   471 ;

RSXSTART        - RSX INITIALIZATION, LOAD AND GO ROUTINES       22-AUG-1978 00:30:46   VAX-11 MACRO X0.3-11               Page  13

00.2            RSX$RUNIMAGE - RUN COMPATIBILITY MODE IMAGE                                                                      (7)



                                     01D8   472 ; VERIFY THAT FILE IS LIBRARY

                                     01D8   473 ;

                                     01D8   474 25$:	BITW	#TS$NHD,L$BFLG(R5)	; NO HEADER?

                                     01D8   475 	BEQL	20$			; IF EQL THEN ERROR

                                     01D8   476 	BITW	#TS$ACP!TS$PMD!TS$SLV!TS$NSD!TS$NET!TS$PRV!TS$RES,-

                                     01D8   477 		L$BFLG(R5)		; ANYTHING ILLEGAL?

                                     01D8   478 	BNEQ	20$			; IF NEQ THEN YES

                                     01D8   479 	BITB	#LD$REL,R$LFLG(R8)	; REQUEST FOR A PIC LIB?

                                     01D8   480 	BEQL	30$			; IF EQL THEN NO

                                     01D8   481 	BITW	#TS$PIC,L$BFLG(R5)	; LIBRARY PIC?

                                     01D8   482 	BEQL	20$			; IF EQL THEN ERROR

                                     01D8   483 	BRB	40$			; CONTINUE

                                     01D8   484 30$:	CMPW	L$BSA(R5),R$LSA(R8)	; BASE ADDRESS MATCH?

                                     01D8   485 	BNEQ	20$			; IF NEQ THEN ERROR

                                     01D8   486 40$:	CMPW	L$BMXZ(R5),R$LMXZ(R8)	; LENGTH SAME?

                                     01D8   487 	BNEQ	20$			; IF NEQ THEN ERROR

                                     01D8   488 ;

                                     01D8   489 ; INSERT SETUP CODE FOR CREATE AND MAPGLOBAL SECTION

                                     01D8   490 ;

                                     01D8   491 50$:	MOVZWL	L$BHRB(R5),R3		; GET RELITIVE BLOCK

                                     01D8   492 	INCL	R3			; ADJUST FOR VIRTUAL COUNT

                                     01D8   493 	MOVZWL	R$LSA(R8),ADR_LOWLIM(R9); SET UP LIMITS

                                     01D8   494 	MOVZWL	R$LLDZ(R8),R4		; GET NUMBER OF 64 BYTE BLOCKS

                                     01D8   495 	ASHL	#6,R4,ADR_HIGHLIM(R9)	;

                                     01D8   496 	ADDL	ADR_LOWLIM(R9),ADR_HIGHLIM(R9);

                                     01D8   497 	TSTW	ADR_HIGHLIM+2(R9)	; IN RANGE?

                                     01D8   498 	BNEQ	20$			; IF NEQ THEN ERROR

                                     01D8   499 ;

                                     01D8   500 ; TEMPORARY CODE TO READ THE LIB INTO MEMORY

                                     01D8   501 ;

                                     01D8   502 	SUBL3	(R9),ADR_HIGHLIM(R9),R2

                                     01D8   503 	$CRETVA_S	(R9)		; CREATE THE SPACE

                                     01D8   504 	$QIOW_S	#0,FAB$L_STV(R6),#IO$_READVBLK,,,,@(R9),R2,R3

                                     01D8   505 	BLBC	R0,75$			; BR IF ERROR

                                     01D8   506 ;

                                     01D8   507 ; END OF TEMP CODE

                                     01D8   508 ;

                                     01D8   509 	MOVL	R6,ADR_FABADDR(R9)	; SAVE FAB ADDRESS

                                     01D8   510 	CMPL	ADR_LOWLIM(R9),I_HIGHSIZE(R10); SET UP HIGH ADDRESS OF ADR0

                                     01D8   511 	BGTRU	60$			; 

                                     01D8   512 	MOVL	(R9),I_HIGHSIZE(R10)

                                     01D8   513 60$:	MOVAB	FAB$C_BLN(R6),R0	; ADDRESS BLOCK BUFFER

                                     01D8   514 	MOVZWL	#512,R1			;

                                     01D8   515 	BSBW	RSX$DEALLOCATE		; DEALLOCATE THE BLOCK

                                     01D8   516 	BRW	NXTLIB			; PROCESS NEXT ENTRY

                                     01D8   517 75$:	BRW	15$			; CONTINUE

                                     01D8   518  

                                     01D8   519 	.ENDC

                                     01D8   520  

RSXSTART        - RSX INITIALIZATION, LOAD AND GO ROUTINES       22-AUG-1978 00:30:46   VAX-11 MACRO X0.3-11               Page  14

00.2            RSX$RUNIMAGE - RUN COMPATIBILITY MODE IMAGE                                                                      (8)



                                     01D8   522 ;

                                     01D8   523 ; GET PROCESS INFORMATION

                                     01D8   524 ;

                                     01D8   525 GETINFO:				;

            6A   031C0010 8F     D0  01D8   526 	MOVL	#16+<JPI$_PRCNAM@16>,I_SCRATCH(R10); GET PROCESS NAME

         04 AA       011D CA     9E  01DF   527 	MOVAB	I_ASCIINAME+1(R10),I_SCRATCH+4(R10); 

         08 AA            6A     9E  01E5   528 	MOVAB	I_SCRATCH(R10),I_SCRATCH+8(R10); 

         0C AA   03080002 8F     D0  01E9   529 	MOVL	#2+<JPI$_GRP@16>,I_SCRATCH+12(R10); GET UIC

         10 AA       0118 CA     9E  01F1   530 	MOVAB	I_UIC(R10),I_SCRATCH+16(R10); TO STORAGE

                       14 AA     D4  01F7   531 	CLRL	I_SCRATCH+20(R10)	; SET NO SIZE RETURN

         18 AA   03070002 8F     D0  01FA   532 	MOVL	#2+<JPI$_MEM@16>,I_SCRATCH+24(R10); 

         1C AA            02     9A  0202   533 	MOVZBL	#2,I_SCRATCH+28(R10)	; INSERT ADDRESS

                       20 AA     D4  0206   534 	CLRL	I_SCRATCH+32(R10)	; NO RETURN 

         24 AA   03090004 8F     D0  0209   535 	MOVL	#4+<JPI$_PRIB@16>,I_SCRATCH+36(R10); GET PRIORITY

         28 AA         28 AA     9E  0211   536 	MOVAB	I_SCRATCH+40(R10),I_SCRATCH+40(R10);

                       2C AA     7C  0216   537 	CLRQ	I_SCRATCH+44(R10)	; NO RETURN AND END LIST

                                     0219   538 	$GETJPI_S	ITMLST=I_SCRATCH(R10)

         30 AB         28 AA     B0  022C   539 	MOVW	I_SCRATCH+40(R10),H.SPRI(R11); SAVE PRIORITY

         0A AB       0118 CA     90  0231   540 	MOVB	I_UIC(R10),H.DUIC(R11)	; INSERT UIC

         0B AB       011A CA     90  0237   541 	MOVB	I_UIC+2(R10),H.DUIC+1(R11);

         08 AB         0A AB     B0  023D   542 	MOVW	H.DUIC(R11),H.CUIC(R11)	; COPY UIC

                                     0242   543 ;***********************************************************************

                                     0242   544 ;

                                     0242   545 ; TEMPORARY CODE

                                     0242   546 ;

                                     0242   547 ;

                                     0242   548 ;

                                     0242   549 ; GET DEFAULT DIRECTORY STRING FOR TASK IMAGE UIC

                                     0242   550 ;

                                     0242   551  

                                     0242   552 	.IF NDF	C$$ORE

                                     0242   553  

                                     0242   554 	MOVAB	@#PIO$GT_DDSTRING+2,R3	; ADDRESS DEFAULT DIRECTORY STRING

                                     0242   555 	MOVAB	H.CUIC+2(R11),R9	; ADDRESS TARGET END

                                     0242   556 	PUSHAB	B^50$			; SET END ADDRESS

                                     0242   557 	BSBB	10$			; DO ROUTINE TWICE

                                     0242   558 10$:	CLRQ	R0			; SET UP ACCUMULATORS

                                     0242   559 15$:	CMPB	(R3),#48		; IN RANGE?

                                     0242   560 	BLSSU	20$			; IF LSSU THEN NO

                                     0242   561 	CMPB	(R3),#57		;

                                     0242   562 	BGTRU	20$			; 

                                     0242   563 	MULL	#8,R0			; OCTAL UICS

                                     0242   564 	SUBB3	#48,(R3)+,R1		; GET CHARACTER OFFSET FROM "0"

                                     0242   565 	ADDL	R1,R0			; ACCUMULATE RESULT

                                     0242   566 	BRB	15$			; CONTINUE

                                     0242   567 20$:	MOVB	R0,-(R9)		; INSERT IN HEADER

                                     0242   568 	INCL	R3			; POINT TO NUMBER

                                     0242   569 	RSB				; RETURN

                                     0242   570  

                                     0242   571 	.ENDC

                                     0242   572  

                                     0242   573 ;

                                     0242   574 ; SETUP PROPER NAME - EITHER PROCESSNAME OR LABEL NAME

                                     0242   575 ;

       0148 CA            3F     9A  0242   576 50$:	MOVZBL	#63,I_HIGHEFN(R10)	; SET KNOWN HIGHEST EFN

            56         08 AA     9E  0247   577 	MOVAB	I_SCRATCH+8(R10),R6	; ADDRESS NAME STRING

            57            86     9A  024B   578 	MOVZBL	(R6)+,R7		; GET NAME STRING SIZE

RSXSTART        - RSX INITIALIZATION, LOAD AND GO ROUTINES       22-AUG-1978 00:30:46   VAX-11 MACRO X0.3-11               Page  15

00.2            RSX$RUNIMAGE - RUN COMPATIBILITY MODE IMAGE                                                                      (8)



            57         5F 8F     3A  024E   579 	LOCC	#^A/_/,R7,(R6)		; LOOK FOR "_"

                          66         0252       

                          08     13  0253   580 	BEQL	60$			; IF EQL THEN NOT FOUND

            56         01 A1     9E  0255   581 	MOVAB	1(R1),R6		; POINT TO NEXT SECTION

            50            01     C3  0259   582 	SUBL3	#1,R0,R7		; GET REMAINDER LESS "_"

                          57         025C       

            57            3A     3A  025D   583 60$:	LOCC	#^A/:/,R7,(R6)		;

                          66         0260       

            57            50     C2  0261   584 	SUBL	R0,R7			; GET REMAINDER SIZE

       011C CA            57     90  0264   585 	MOVB	R7,I_ASCIINAME(R10)	; INSERT STRING SIZE

            66            57     28  0269   586 	MOVC3	R7,(R6),I_ASCIINAME+1(R10); COPY NAME

                     011D CA         026C       

                          63     94  026F   587 	CLRB	(R3)			; MAKE IT ASCIZ

                          50     D4  0271   588 	CLRL	R0			; SET DOT IS LEGAL

            53            57     C3  0273   589 	SUBL3	R7,R3,R1		; ADDRESS STRING

                          51         0276       

            54       0124 CA     9E  0277   590 	MOVAB	I_RAD50NAME(R10),R4	; ADDRESS TARGET

                          FD81'  30  027C   591 	BSBW	RSX$ASCR502		; CONVERT 6 CHARACTERS

            52            6E     D0  027F   592 	MOVL	(SP),R2			; RETREIVE LABEL ADDRESS

                                     0282   593 ;

                                     0282   594 ; SEE IF THIS IMAGE IS A NON-MULTI USER IMAGE

                                     0282   595 ;

            53            62     D0  0282   596 	MOVL	L$BTSK(R2),R3		; GET LABEL NAME

                          07     13  0285   597 	BEQL	70$			; ASSIGN DEVICE IF NONE

            53       B37C 8F     B1  0287   598 	CMPW	#^O0131574,R3		; ...XXX?

                          03     12  028C   599 	BNEQ	80$			; IF NEQ THEN SPECIFIC NAME

                          005B   31  028E   600 70$:	BRW	ASSIGNDEVICES

                                     0291   601 ;

                                     0291   602 ; CONVERT LABEL NAME TO ASCII

                                     0291   603 ;

            54       0124 CA     9E  0291   604 80$:	MOVAB	I_RAD50NAME(R10),R4	; ADDRESS RAD50 INPUT

            64            53     D0  0296   605 	MOVL	R3,(R4)			; INSERT NEW RAD50 NAME

            57       011D CA     9E  0299   606 	MOVAB	I_ASCIINAME+1(R10),R7	; ADDRESS DESTINATION

         04 AA            57     D0  029E   607 	MOVL	R7,I_SCRATCH+4(R10)	; SAVE ADDRESS

                          FD5B'  30  02A2   608 	BSBW	RSX$R50CVT2		; CONVERT THE NAME

            57         04 AA     C3  02A5   609 	SUBL3	I_SCRATCH+4(R10),R7,I_SCRATCH(R10); 

                          6A         02A9       

       011C CA            6A     90  02AA   610 	MOVB	I_SCRATCH(R10),I_ASCIINAME(R10); SAVE AS COUNTED STRING

                                     02AF   611 	$SETPRN_S	I_SCRATCH(R10)	; DECLARE LOGICAL NAME

            2E            50     E9  02B8   612 	BLBC	R0,100$			; BR IF ERROR

                                     02BB   613 ;

                                     02BB   614 ; SAVE FINAL NAME FOR REGISTERS

                                     02BB   615 ;

            57         3A AB     3C  02BB   616 	MOVZWL	H.GARD(R11),R7		; ADDRESS GARD

         FC A7       0124 CA     B0  02BF   617 	MOVW	I_RAD50NAME(R10),-4(R7)	; AND SAVE THERE

         FA A7       0126 CA     B0  02C5   618 	MOVW	I_RAD50NAME+2(R10),-6(R7) ; ...

                                     02CB   619 ;

                                     02CB   620 ; CREATE RECEIVE DATA MAILBOX

                                     02CB   621 ;

                                     02CB   622  

                                     02CB   623 	.IF DF	M$$LBX

                                     02CB   624  

                                     02CB   625 	MOVAB	I_SCRATCH+8(R10),I_SCRATCH+4(R10); SET UP STRING DESC.

                                     02CB   626 	ADDL	#4,I_SCRATCH(R10)	; ADJUST FOR "RCVD" PREFIX

                                     02CB   627 	MOVL	#C_RCVDSTR,I_SCRATCH+8(R10); INSERT PREFIX

                                     02CB   628 	MOVL	I_ASCIINAME+1(R10),I_SCRATCH+12(R10); INSERT NAME

                                     02CB   629 	MOVL	I_ASCIINAME+5(R10),I_SCRATCH+16(R10); 

RSXSTART        - RSX INITIALIZATION, LOAD AND GO ROUTINES       22-AUG-1978 00:30:46   VAX-11 MACRO X0.3-11               Page  16

00.2            RSX$RUNIMAGE - RUN COMPATIBILITY MODE IMAGE                                                                      (8)



                                     02CB   630 	$CREMBX_S	#0,-

                                     02CB   631 			I_RCVMAIL(R10),-

                                     02CB   632 			#30,-

                                     02CB   633 			#RSX$_RCVMBXSIZ,-

                                     02CB   634 			#^X0F0FF,-

                                     02CB   635 			#0,-

                                     02CB   636 			I_SCRATCH(R10)

                                     02CB   637 	BLBC	R0,100$			; BR IF ERROR

                                     02CB   638  

                                     02CB   639 	.ENDC

                                     02CB   640  

                                     02CB   641 ;

                                     02CB   642 ; ASSOCIATE THE COMMON EVENT FLAGS

                                     02CB   643 ;

                                     02CB   644  

                                     02CB   645 	.IF NDF	C$$EVFLG

                                     02CB   646  

                                     02CB   647 	$ASCEFC_S	#64,W^COMMONEFN,#1,#1

       0148 CA         5F 8F     9A  02E0   648 	MOVZBL	#95,I_HIGHEFN(R10)	; INSERT NEW HIGH EFN

            03            50     E8  02E6   649 	BLBS	R0,ASSIGNDEVICES	; BR IF SUCCESS

                                     02E9   650  

                                     02E9   651 	.IFF

                                     02E9   652  

                                     02E9   653 	BRB	ASSIGNDEVICES		; ASSIGN ALL DEVICES

                                     02E9   654  

                                     02E9   655 	.ENDC

                                     02E9   656  

                                     02E9   657 ;

                                     02E9   658 ; ERROR IN ASSIGNMENT OF COMMON EFNS, LOGICAL NAME OR RECEIVE MAILBOX

                                     02E9   659 ;

                          FD14'  31  02E9   660 100$:	BRW	RSX$INTERNEXIT		; EXIT RUN

RSXSTART        - RSX INITIALIZATION, LOAD AND GO ROUTINES       22-AUG-1978 00:30:46   VAX-11 MACRO X0.3-11               Page  17

00.2            RSX$RUNIMAGE - RUN COMPATIBILITY MODE IMAGE                                                                      (9)



                                     02EC   662 ;

                                     02EC   663 ; ASSIGN TASK IMAGE PRE-ASSIGNED DEVICES

                                     02EC   664 ;

                                     02EC   665 ASSIGNDEVICES:				;

            52            6E     D0  02EC   666 	MOVL	(SP),R2			; RETREIVE LABEL ADDRESS

       01FE C2            01     9B  02EF   667 	MOVZBW	#1,L$BASG-2(R2)		; SET UP ASSIGNMENT TABLES TO LOOK LIKE ALUN$

            55       01FE C2     9E  02F4   668 	MOVAB	L$BASG-2(R2),R5		; ADDRESS AS IF DPB

                                     02F9   669 ;

                                     02F9   670 ; DO ASSIGNMENTS

                                     02F9   671 ;

            51         3C AB     3C  02F9   672 	MOVZWL	H.NLUN(R11),R1		; GET NUMBER OF LUN IN IMAGE

       0140 CA            51     D0  02FD   673 	MOVL	R1,I_NLUN(R10)		; SAVE NUMBER IN SAFE PLACE

                          38     13  0302   674 	BEQL	122$			; IF EQL THEN NONE

            51            04     C4  0304   675 	MULL	#4,R1			; CALC NUMBER OF BYTES TO ALLOCATE

                          FCF6'  30  0307   676 	BSBW	RSX$ALLOCATE		; ALLOCATE THE LUT TABLE

            50            04     C3  030A   677 	SUBL3	#4,R0,I_LUT(R10)	; SAVE LUT ADDRESS LESS OFFSET FOR CONTEXT INDEX

                     0144 CA         030D       

       0140 CA            01     C3  0310   678 	SUBL3	#1,I_NLUN(R10),R1	; GET NUMBER OF LONG WORDS

                          51         0315       

                          6041   D4  0316   679 110$:	CLRL	(R0)[R1]		; CLEAR BLOCK

            FA            51     F4  0319   680 	SOBGEQ	R1,110$			;

       0140 CA            65     B1  031C   681 115$:	CMPW	(R5),I_NLUN(R10)	; DONE?

                          6F     1A  0321   682 	BGTRU	130$			; IF GTRU THEN YES

         26 AB            01     9B  0323   683 	MOVZBW	#1,H.DSW(R11)		; ASSUME SUCCESS

                          18     BB  0327   684 	PUSHR	#^M<R3,R4>		; SAVE REGISTERS

                          FCD4'  30  0329   685 	BSBW	RSX$ALUN		; ASSIGN THE LUN

                          18     BA  032C   686 	POPR	#^M<R3,R4>		; RESTORE THE REGISTERS

                       26 AB     95  032E   687 	TSTB	H.DSW(R11)		; SUCCESS?

                          0C     19  0331   688 	BLSS	125$			; BR IF NOT SUCCESSFUL

                          85     B5  0333   689 120$:	TSTW	(R5)+			; POINT TO LAST ASSIGN'S UNIT

         FC A5            01     A1  0335   690 	ADDW3	#1,-4(R5),(R5)		; UP LUN NUMBER TO ASSIGN

                          65         0339       

                          E0     11  033A   691 	BRB	115$			; AND CONTINUE

                          0053   31  033C   692 122$:	BRW	150$			;

                                     033F   693 ;

                                     033F   694 ; ASSIGN FAILURE - TELL USER IN WARNING

                                     033F   695 ;

                                     033F   696 125$:					;

                          65     B5  033F   697 	TSTW	(R5)			; NO NAME?

                          F0     13  0341   698 	BEQL	120$			; IF EQL THEN NO MESSAGE

            54         FE A5     3C  0343   699 	MOVZWL	-2(R5),R4		; GET THE LUN NUMBER FAILURE

         5C AA            28     9A  0347   700 	MOVZBL	#40,I_SCRATCH+92(R10)	; SET UP TARGET BUFFER DESC.

         60 AA         64 AA     9E  034B   701 	MOVAB	I_SCRATCH+100(R10),I_SCRATCH+96(R10);

                                     0350   702  

                                     0350   703 	.IF NDF	C$$ORE

                                     0350   704  

                                     0350   705 	$GETMSG_F	#RSX$_NOSUCHDEV,I_SCRATCH+92(R10),I_SCRATCH+92(R10),#7

                                     0350   706  

                                     0350   707 	.IFF

                                     0350   708  

                                     0350   709 	GETMSG_S	#RSX$_NOSUCHDEV,I_SCRATCH+92(R10),I_SCRATCH+92(R10)

                                     0363   710  

                                     0363   711 	.ENDC

                                     0363   712  

            53         02 A5     9E  0363   713 	MOVAB	2(R5),R3		; ADDRESS UNIT NUMBER

            6A         50 8F     9A  0367   714 	MOVZBL	#80,I_SCRATCH(R10)	;

         04 AA         08 AA     9E  036B   715 	MOVAB	I_SCRATCH+8(R10),I_SCRATCH+4(R10)

RSXSTART        - RSX INITIALIZATION, LOAD AND GO ROUTINES       22-AUG-1978 00:30:46   VAX-11 MACRO X0.3-11               Page  18

00.2            RSX$RUNIMAGE - RUN COMPATIBILITY MODE IMAGE                                                                      (9)



                                     0370   716 	$FAO_S	W^ASSIGNER,I_SCRATCH(R10),I_SCRATCH(R10),I_SCRATCH+92(R10),-

                                     0370   717 		I_SCRATCH+96(R10),#2,R5,(R3),R4

                          FC70'  30  038D   718 	BSBW	RSX$PRINTERR		; PRINT OUT ERROR

                          A1     11  0390   719 	BRB	120$			; CONTINUE

                                     0392   720 ;

                                     0392   721 ; TAKE CARE OF ACTUAL OVERLAY LUN

                                     0392   722 ;

                                     0392   723 130$:	

                                     0392   724  

                                     0392   725 	.IF NDF	C$$ORE

                                     0392   726  

                                     0392   727 	MOVZWL	H.OVLY(R11),R0		; ADDRESS OVERLAY IMPURE VECTOR

                                     0392   728 	BEQL	150$			; IF EQL THEN NONE

                                     0392   729 	MOVZBL	(R0),R7			; GET THE LUN NUMBER

                                     0392   730 	BEQL	150$			;

                                     0392   731 	MOVAB	W^RSX$A_OVDEV,R8	; ADDRESS OVERLAY ENTRY

                                     0392   732 	MOVL	@I_LUT(R10)[R7],R2	; GET THE OVERLAY LUT ENTRY

                                     0392   733 	BEQL	150$			; IF EQL THEN NONE

                                     0392   734 	CMPL	R8,R2			; SAME AS REAL?

                                     0392   735 	BEQL	150$			; IF EQL THEN LEAVE ALONE

                                     0392   736 	$DASSGN_S	LUT_CHAN(R2)	; DEASSIGN CHANNEL

                                     0392   737 	REMQUE	(R2),R0			; REMOVE IT FROM CURRENT LIST

                                     0392   738 	MOVZBL	#LUT_SIZE,R1		; DEALLOCATE THE ENTRY

                                     0392   739 	BSBW	RSX$DEALLOCATE		; DEALLOCATE IT

                                     0392   740 140$:	MOVL	R8,@I_LUT(R10)[R7]	; ASSIGN TO REAL OVERLAY LUT

                                     0392   741  

                                     0392   742 	.ENDC

                                     0392   743  

                                     0392   744 ;

                                     0392   745 ; ASSIGNMENTS COMPLETED

                                     0392   746 ;

                          50   8ED0  0392   747 150$:	POPL	R0			; DEALLOCATE THE LABEL BLOCKS

            51       0600 8F     3C  0395   748 	MOVZWL	#<3*512>,R1		;

                          FC63'  30  039A   749 	BSBW	RSX$DEALLOCATE		;

   00000000'EF            58     7D  039D   750 	MOVQ	R8,RSX$A_REGSAV		; SAVE R8 - R11

   00000008'EF            5A     7D  03A4   751 	MOVQ	R10,RSX$A_REGSAV+8	; ...

   00000000'EF            01     D0  03AB   752 	MOVL	#1,RSX$A_RESTART	; FLAG RESTART

RSXSTART        - RSX INITIALIZATION, LOAD AND GO ROUTINES       22-AUG-1978 00:30:46   VAX-11 MACRO X0.3-11               Page  19

00.2            RSX$RUNIMAGE - RUN COMPATIBILITY MODE IMAGE                                                                     (10)



                                     03B2   754 ;

                                     03B2   755 ; SET UP FOR COMPATIBILITY MODE EXCEPTIONS

                                     03B2   756 ;

                                     03B2   757 	$SETEXV_S	#1,RSX$EXCEPTION

            40            50     E9  03C5   758 	BLBC	R0,EXIT		; BR IF ERROR

                                     03C8   759 	$DCLCMH_S	RSX$CMTRAP,,#1

            2C            50     E9  03D9   760 	BLBC	R0,EXIT

                                     03DC   761 ;

                                     03DC   762 ; SET UP 11M REGISTERS FOR ENTRY

                                     03DC   763 ;

                                     03DC   764  

                                     03DC   765 ENTERIMAGE:				;

            57         3A AB     3C  03DC   766 	MOVZWL	H.GARD(R11),R7		; ADDRESS CONTEXT AREA

            50            77     3C  03E0   767 	MOVZWL	-(R7),R0		; LOAD REGISTERS

            51            77     3C  03E3   768 	MOVZWL	-(R7),R1		;

            52            77     3C  03E6   769 	MOVZWL	-(R7),R2		;

            53            77     3C  03E9   770 	MOVZWL	-(R7),R3		;

            54            77     3C  03EC   771 	MOVZWL	-(R7),R4		;

            55            77     3C  03EF   772 	MOVZWL	-(R7),R5		;

            56         10 AB     3C  03F2   773 	MOVZWL	H.ISP(R11),R6		; SET UP STACK

            05            00     EF  03F6   774 	EXTZV	#0,#5,H.IPS(R11),-(SP)	; SET UP CONDITION CODES

            7E         0C AB         03F9       

            6E   83C00000 8F     C8  03FC   775 	BISL	#C_CANONPS,(SP)		;

            7E         0E AB     3C  0403   776 	MOVZWL	H.IPC(R11),-(SP)	;

                                 02  0407   777 	REI				; ENTER IMAGE

                                     0408   778 ;

                                     0408   779 ; ERROR IN EXCEPTION HANDLER DECLARE OR CM TRAP HANDLER

                                     0408   780 ;

                          FBF5'  31  0408   781 EXIT:	BRW	RSX$INTERNEXIT		; EXIT RUN

RSXSTART        - RSX INITIALIZATION, LOAD AND GO ROUTINES       22-AUG-1978 00:30:46   VAX-11 MACRO X0.3-11               Page  20

00.2            OPEN_SYS_DEVS - OPEN SYS$DEVICES                                                                                (11)



                                     040B   783 	.SBTTL	OPEN_SYS_DEVS - OPEN SYS$DEVICES

                                     040B   784 ;++

                                     040B   785 ; OPEN_SYS_DEVS - OPEN SYS$ DEVICES

                                     040B   786 ;

                                     040B   787 ; FUNCTIONAL DESCRIPTION:

                                     040B   788 ;

                                     040B   789 ; THIS ROUTINE IS USED TO OPEN THE SYS$ DEVICES WHEN STARTING UP A COMPATIBILITY

                                     040B   790 ; MODE IMAGE.

                                     040B   791 ;

                                     040B   792 ; INPUTS:

                                     040B   793 ;

                                     040B   794 ;	R1 = ADDRESS OF THE CTL$GL LONG WORD OF DEVICE CHARACTERISTICS

                                     040B   795 ;	R2 = ADDRESS OF THE COUNTED ASCII STRING OF THE DEVICE NAME

                                     040B   796 ;	R8 = LUT ENTRY TO INITIALIZE

                                     040B   797 ;

                                     040B   798 ; OUTPUTS:

                                     040B   799 ;

                                     040B   800 ;	R8 IS PRESERVED

                                     040B   801 ;--

                                     040B   802 OPEN_SYS_DEVS:				;

            56         34 A8     D0  040B   803 	MOVL	LUT_CTRLC(R8),R6	; GET FAB ADDRESS

                       0C A8     D5  040F   804 	TSTL	LUT_CHAN(R8)		; CHANNEL ASSIGNED?

                          4E     12  0412   805 	BNEQ	100$

            6A            62     9A  0414   806 	MOVZBL	(R2),I_SCRATCH(R10)	; SET UP FOR TRANSLATE NAME

         04 AA         01 A2     9E  0417   807 	MOVAB	1(R2),I_SCRATCH+4(R10)	;

         30 A8         04 A2     B0  041C   808 	MOVW	4(R2),LUT_INFONAME(R8)	; SAVE $X AS INFO NAME

                                     0421   809 ;

                                     0421   810 ; GET CHARACTERISTICS OF THE DEVICE

                                     0421   811 ;

            52            02     9A  0421   812 	MOVZBL	#2,R2			; TRANSLATE THREE TIMES

                          FBD9'  30  0424   813 10$:	BSBW	RSX$TRNLOGONE		;

            03            50     E9  0427   814 	BLBC	R0,20$			; IF LOW CLEAR THEN DONE

            F7            52     F4  042A   815 	SOBGEQ	R2,10$			;

                                     042D   816 20$:					;

                                     042D   817  

                                     042D   818 	.IF DF	C$$ORE

                                     042D   819  

         04 BA            1B     91  042D   820 	CMPB	#27,@I_SCRATCH+4(R10)	; PROCESS PERM FILE LOGICAL NAME?

                          14     12  0431   821 	BNEQ	30$			; IF NEQ THEN NOT PROCESS PERM

            6A            04     C2  0433   822 	SUBL	#4,I_SCRATCH(R10)	;

                          36     1B  0436   823 	BLEQU	200$			; IF LEQU ERROR

         04 AA            04     C0  0438   824 	ADDL	#4,I_SCRATCH+4(R10)	;

            6A         5F 8F     3A  043C   825 	LOCC	#^A/_/,I_SCRATCH(R10),@I_SCRATCH+4(R10) ; LOOK FOR UNDERSCORE

                       04 BA         0440       

                          03     13  0442   826 	BEQL	30$			; IF EQL NOT FOUND

            6A            50     7D  0444   827 	MOVQ	R0,I_SCRATCH(R10)	; REPLACE DESCRIPTOR IF FOUND

                                     0447   828  

                                     0447   829 	.IFF

                                     0447   830  

                                     0447   831 	CMPB	#27,@I_SCRATCH+4(R10)	; PROCESS PERM FILE LOGICAL NAME?

                                     0447   832 	BNEQ	30$			; IF NEQ THEN NOT PROCESS PERM

                                     0447   833 	SUBL	#4,I_SCRATCH(R10)	;

                                     0447   834 	BLEQ	RMS			; IF LEQ THEN TROUBLE

                                     0447   835 	ADDL	#4,I_SCRATCH+4(R10)	; 

                                     0447   836  

                                     0447   837 	.ENDC

                                     0447   838  

RSXSTART        - RSX INITIALIZATION, LOAD AND GO ROUTINES       22-AUG-1978 00:30:46   VAX-11 MACRO X0.3-11               Page  21

00.2            OPEN_SYS_DEVS - OPEN SYS$DEVICES                                                                                (11)



                                     0447   839 30$:					; REF LABEL

                                     0447   840  

                                     0447   841 	.IF NDF	C$$ORE

                                     0447   842  

                                     0447   843 	MOVAB	I_SCRATCH+100(R10),I_SCRATCH+94(R10); GET DEVICE INFO

                                     0447   844 	MOVZBL	#4,I_SCRATCH+90(R10)

                                     0447   845 	$GETDEV_S I_SCRATCH(R10),,I_SCRATCH+90(R10)

                                     0447   846 	BLBC	R0,RMS			; IF LOW CLEAR THEN TRY RMS

                                     0447   847 	BBC	#DEV$V_TRM,I_SCRATCH+100(R10),RMS; IF NOT TERMINAL THEN RMS

                                     0447   848  

                                     0447   849 	.ENDC

                                     0447   850  

                                     0447   851 	$ASSIGN_S	I_SCRATCH(R10),LUT_CHAN(R8); ASSIGN CHANNEL

            16            50     E9  0455   852 	BLBC	R0,200$			; IF LOW CLEAR THEN ERROR

                       30 A8     DD  0458   853 	PUSHL	LUT_INFONAME(R8)	;

                          FBA2'  30  045B   854 	BSBW	RSX$MAPDEVNAM		; BUILD DEVICE NAME LUT INFO

         30 A8            8E     F7  045E   855 	CVTLW	(SP)+,LUT_INFONAME(R8)

                                     0462   856 100$:	

       00BC DA            68     0E  0462   857 	INSQUE	(R8),@I_LOGNAME+4(R10)	; INSERT ON LOGICAL NAME LIST

         0A A8            08     88  0467   858 	BISB	#1@LUTV_PRM,LUT_FLAGS(R8); SET PERMANENT FILE

                       34 A8     D4  046B   859 	CLRL	LUT_CTRLC(R8)		;

                                 05  046E   860 200$:	RSB

                                     046F   861 ;

                                     046F   862 ; RMS OR NO LOGIN PROCESS

                                     046F   863 ;

                                     046F   864  

                                     046F   865 	.IF NDF	C$$ORE

                                     046F   866  

                                     046F   867 RMS:	CLRW	LUT_INFOUNIT(R8)	; UNIT 0

                                     046F   868 	MOVW	FAB$W_IFI(R6),LUT_CHAN(R8); SET UP DONE?

                                     046F   869 	BNEQ	250$			; IF NEQ THEN YES

                                     046F   870 	$CREATE	FAB=R6			; OPEN FILE

                                     046F   871 	BLBC	R0,200$			; IF LOW CLEAR THEN DONE

                                     046F   872 	MOVW	FAB$W_IFI(R6),LUT_CHAN(R8); SAVE IFI VALUE AS CHANNEL

                                     046F   873 250$:	CLRB	LUT_TYPE(R8)		; SET RMS CONTROLLED

                                     046F   874 	MOVL	#DEV$M_REC!DEV$M_TRM!DEV$M_CCL,LUT_CHAR(R8)

                                     046F   875 	MOVW	#132,LUT_CHAR+6(R8)	;

                                     046F   876 	CLRL	LUT_CHAR+8(R8)		;

                                     046F   877 	INSV	#FAB$M_PRN,#RAB$V_PPF_RAT,#RAB$S_PPF_RAT,LUT_CHAN(R8)

                                     046F   878 	MOVZBL	FAB$B_FNS(R6),R0	; GET SIZE OF NAME

                                     046F   879 	MOVB	R0,LUT_REALNAME(R8)	; SAVE SIZE

                                     046F   880 	MOVC3	R0,@FAB$L_FNA(R6),LUT_REALNAME+1(R8); MOVE NAME

                                     046F   881 	MOVB	#^A/:/,(R3)		; END WITH COLON

                                     046F   882 	BRB	100$			;

                                     046F   883  

                                     046F   884 	.ENDC

RSXSTART        - RSX INITIALIZATION, LOAD AND GO ROUTINES       22-AUG-1978 00:30:46   VAX-11 MACRO X0.3-11               Page  22

00.2            RSX$ERROR - EXCEPTION HANDLER FOR RSX ERRORS                                                                    (12)



                                     046F   886 	.SBTTL	RSX$ERROR - EXCEPTION HANDLER FOR RSX ERRORS

                                     046F   887 ;++

                                     046F   888 ; RSX$ERROR - EXCEPTION HANDLER FOR RSX ERRORS

                                     046F   889 ;

                                     046F   890 ; FUNCTIONAL DESCRIPTION:

                                     046F   891 ;

                                     046F   892 ; THIS ROUTINE IS THE HIGHEST EXCEPTION HANDLER IN THE RSX. IF ENTERED,

                                     046F   893 ; IT MEANS THAT THE RSX HAS HAD A FATAL ERROR. THE ACTION IS TO OUTPUT

                                     046F   894 ; A MESSAGE. IT IS POSSIBLE THAT THE IMPURE DATA BASE ( RAB ) CANNOT BE USED.

                                     046F   895 ; AND IN THAT CASE THE EXCEPTION IS IGNORED.

                                     046F   896 ;

                                     046F   897 ; INPUTS:

                                     046F   898 ;

                                     046F   899 ;	EXCEPTION STACK FRAME.

                                     046F   900 ;

                                     046F   901 ; OUTPUTS:

                                     046F   902 ;

                                     046F   903 ;	THE  IMAGE EXECUTION IS ABORTED. NO CLEAN UP IS DONE.

                                     046F   904 ;

                                     046F   905 ;--

                                     046F   906 RSX$ERROR::				; RSX EXCEPTION HANDLER

                               0000  046F   907 	.WORD	<0>			;

                                     0471   908 	$EXIT_S	4(AP)			; GO DOWN THE TUBES

                                     047B   909 ;

                                     047B   910 	.END

RSXSTART        - RSX INITIALIZATION, LOAD AND GO ROUTINES       22-AUG-1978 00:30:46   VAX-11 MACRO X0.3-11               Page  23

SYMBOL TABLE                                                                                                                    (12)



$$MSG          = 00000000            DEV$M_SQD      = 00000020            H.FPVA           0000001C            

$$T1           = 00000001            DEV$M_SWL      = 02000000            H.GARD           0000003A            

$$T2           = 00000009            DEV$M_TRM      = 00000004            H.HDLN           00000002            

...GBL         = 00000000            DEV$M_WCK      = 80000000            H.IPC            0000000E            

ACBC_CTLRCAST  = 00000002            DEV$V_ALL      = 00000017            H.IPS            0000000C            

ACBC_FLOATAST  = 00000003            DEV$V_AVL      = 00000012            H.ISP            00000010            

ACBC_PWRAST    = 00000000            DEV$V_CCL      = 00000001            H.LUN            0000003E            

ACBC_RCVAST    = 00000001            DEV$V_DIR      = 00000003            H.NLUN           0000003C            

ACBV_INPROG    = 00000001            DEV$V_DMT      = 00000015            H.NML            00000031            

ACBV_PERM      = 00000000            DEV$V_ELG      = 00000016            H.ODVA           00000012            

ACBV_TYPE      = 00000008            DEV$V_FOD      = 0000000E            H.ODVL           00000014            

ACB_FLAGS        0000000C            DEV$V_FOR      = 00000018            H.OVLY           0000002C            

ACB_LINK         00000000            DEV$V_GEN      = 00000011            H.PFVA           0000001A            

ACB_UPC          0000000A            DEV$V_IDV      = 0000001A            H.RCVA           0000001E            

ACB_UPRM         00000008            DEV$V_MBX      = 00000014            H.RRVA           00000032            

ADR_HIGHLIM      00000004            DEV$V_MNT      = 00000013            H.SPRI           00000030            

ADR_LOWLIM       00000000            DEV$V_NET      = 0000000D            H.TKVA           00000016            

ADR_SIZE         00000008            DEV$V_ODV      = 0000001B            H.TKVL           00000018            

AP_NAME          00000004            DEV$V_RCK      = 0000001E            H.VEXT           0000002E            

ASSIGNDEVICES    000002EC R     07   DEV$V_REC      = 00000000            H.WND            00000024            

ASSIGNER         00000000 R     06   DEV$V_RND      = 0000001C            IE.2DV         = FFFFFFD0            

ASSIGNFILES      0000009A R     07   DEV$V_RTM      = 0000001D            IE.ABO         = FFFFFFF1            

AST_PARAM        00000004            DEV$V_SDI      = 00000004            IE.ALC         = FFFFFFAC            

AST_PC           00000010            DEV$V_SHR      = 00000010            IE.ALN         = FFFFFFDE            

AST_PSL          00000014            DEV$V_SPL      = 00000006            IE.AST         = FFFFFFB0            

AST_R0           00000008            DEV$V_SQD      = 00000005            IE.BAD         = FFFFFFFF            

AST_R1           0000000C            DEV$V_SWL      = 00000019            IE.BBE         = FFFFFFC8            

BADIMAGE         00000139 R     07   DEV$V_TRM      = 00000002            IE.BCC         = FFFFFFBE            

BIT...         = 00000103            DEV$V_WCK      = 0000001F            IE.BDI         = FFFFFFCC            

C$$ORE         = 00000000            ENTERIMAGE       000003DC R     07   IE.BDR         = FFFFFFCE            

CHECKLABEL       0000011E R     07   EXIT             00000408 R     07   IE.BDV         = FFFFFFC9            

CMDLIN         = 00000008            FCB_ATTRIBS      0000007C            IE.BHD         = FFFFFFC0            

COMMONEFN        00000020 R     06   FCB_FIB          0000004C            IE.BLB         = FFFFFFBA            

CO_POOLSIZE      0000099C            FCB_FID          00000000            IE.BLK         = FFFFFFEC            

C_CANONPS      = 83C00000            FCB_FNAME        00000014            IE.BNM         = FFFFFFCA            

C_RCVDSTR      = 44564352            FCB_FNAMEDESC    0000000C            IE.BTF         = FFFFFFB4            

DEV$M_ALL      = 00800000            FCB_FNB          00000002            IE.BTP         = FFFFFFD5            

DEV$M_AVL      = 00040000            FCB_PC           00000078            IE.BVR         = FFFFFFC1            

DEV$M_CCL      = 00000002            FCB_RESULT       00000030            IE.BYT         = FFFFFFED            

DEV$M_DIR      = 00000008            FCB_RESULTDESC   00000004            IE.CKS         = FFFFFFE2            

DEV$M_DMT      = 00200000            FCB_SIZE         000000B4            IE.CLO         = FFFFFFDA            

DEV$M_ELG      = 00400000            FP_AP            00000008            IE.CNR         = FFFFFFB7            

DEV$M_FOD      = 00004000            FP_FP            0000000C            IE.CON         = FFFFFFEA            

DEV$M_FOR      = 01000000            FP_PC            00000010            IE.DAA         = FFFFFFF8            

DEV$M_GEN      = 00020000            FP_PSL           00000004            IE.DAO         = FFFFFFF3            

DEV$M_IDV      = 04000000            FP_REGISTERS     00000014            IE.DFU         = FFFFFFE8            

DEV$M_MBX      = 00100000            GBL...         = 00000000            IE.DNA         = FFFFFFF9            

DEV$M_MNT      = 00080000            GETINFO          000001D8 R     07   IE.DNR         = FFFFFFFD            

DEV$M_NET      = 00002000            H.CSP            00000000            IE.DUN         = FFFFFFF7            

DEV$M_ODV      = 08000000            H.CUIC           00000008            IE.DUP         = FFFFFFC7            

DEV$M_RCK      = 40000000            H.DSW            00000026            IE.EOF         = FFFFFFF6            

DEV$M_REC      = 00000001            H.DUIC           0000000A            IE.EOT         = FFFFFFC2            

DEV$M_RND      = 10000000            H.EFLM           00000004            IE.EOV         = FFFFFFF5            

DEV$M_RTM      = 20000000            H.EFSV           00000020            IE.EXP         = FFFFFFB5            

DEV$M_SDI      = 00000010            H.FCS            00000028            IE.FEX         = FFFFFFCF            

DEV$M_SHR      = 00010000            H.FORT           0000002A            IE.FHE         = FFFFFFC5            

DEV$M_SPL      = 00000040            H.FPSA           00000022            IE.FLN         = FFFFFFAF            

RSXSTART        - RSX INITIALIZATION, LOAD AND GO ROUTINES       22-AUG-1978 00:30:46   VAX-11 MACRO X0.3-11               Page  24

SYMBOL TABLE                                                                                                                    (12)



IE.FOP         = FFFFFFCB            IS.RDD         = 00000002            JPI$C_LISTEND  = 00000000            

IE.HFU         = FFFFFFE4            IS.SUC         = 00000001            JPI$C_PCBTYPE  = 00000003            

IE.IES         = FFFFFFAE            IS.TAB         = 00000901            JPI$C_PHDTYPE  = 00000004            

IE.IFC         = FFFFFFFE            IS.TMO         = 00000002            JPI$_ACCOUNT   = 00000203            

IE.IFU         = FFFFFFE7            I_ADR0           000000D8            JPI$_APTCNT    = 0000030A            

IE.ILL         = FFFFFFD6            I_ASCIINAME      0000011C            JPI$_ASTACT    = 00000300            

IE.ISQ         = FFFFFFC3            I_ASTPOOL        000000A8            JPI$_ASTCNT    = 0000030E            

IE.LCK         = FFFFFFE5            I_ASTQUEUE       000000A0            JPI$_ASTEN     = 00000301            

IE.MOD         = FFFFFFEB            I_BAILOUTFP      0000018C            JPI$_ASTLM     = 00000409            

IE.NBF         = FFFFFFD9            I_CMDAD          000000C4            JPI$_BIOCNT    = 0000030F            

IE.NBK         = FFFFFFD7            I_CMDSZ          000000C0            JPI$_BIOLM     = 00000310            

IE.NDR         = FFFFFFB8            I_CURAST         00000194            JPI$_BUFIO     = 0000040C            

IE.NFI         = FFFFFFC4            I_FCBPOOL        000000B0            JPI$_BYTCNT    = 00000311            

IE.NFW         = FFFFFFBB            I_FCC            000001B0            JPI$_BYTLM     = 0000031A            

IE.NLK         = FFFFFFB1            I_FLOATA0        000001BC            JPI$_CPULIM    = 0000040D            

IE.NLN         = FFFFFFDB            I_FLOATA1        000001C4            JPI$_CPUTIM    = 00000407            

IE.NNC         = FFFFFFB3            I_FLOATA2        000001CC            JPI$_CURPRIV   = 00000400            

IE.NNL         = FFFFFFB2            I_FLOATA3        000001D4            JPI$_DFPFC     = 00000406            

IE.NNN         = FFFFFFBC            I_FLOATA4        000001DC            JPI$_DFWSCNT   = 00000403            

IE.NOD         = FFFFFFE9            I_FLOATA5        000001E4            JPI$_DIOCNT    = 00000312            

IE.NSF         = FFFFFFE6            I_FLOATADR       000001AC            JPI$_DIOLM     = 00000313            

IE.NST         = FFFFFFB0            I_FLOATAST       000001A0            JPI$_DIRIO     = 0000040B            

IE.OFL         = FFFFFFBF            I_FLOATCSR       000001A4            JPI$_EFCS      = 00000317            

IE.ONP         = FFFFFFFB            I_FLOATERR       000001A8            JPI$_EFCU      = 00000318            

IE.OVR         = FFFFFFEE            I_FLOATTMP       000001B4            JPI$_EFWM      = 00000316            

IE.PES         = FFFFFFAD            I_GARD           000000C8            JPI$_EXCVEC    = 00000100            

IE.PRI         = FFFFFFF0            I_HIGHEFN        00000148            JPI$_FILCNT    = 00000314            

IE.RAC         = FFFFFFD4            I_HIGHSIZE       000000D0            JPI$_FILLM     = 0000040F            

IE.RAT         = FFFFFFD3            I_IMAGEVBN       000000D4            JPI$_FINALEXC  = 00000101            

IE.RBG         = FFFFFFD8            I_INISIZE        000000CC            JPI$_FREP0VA   = 00000404            

IE.RCN         = FFFFFFD2            I_LENGTH         000001EC            JPI$_FREP1VA   = 00000405            

IE.RER         = FFFFFFE0            I_LOGNAME        000000B8            JPI$_GPGCNT    = 0000030C            

IE.RNM         = FFFFFFCD            I_LUT            00000144            JPI$_GRP       = 00000308            

IE.RSU         = FFFFFFEF            I_NLUN           00000140            JPI$_LASTADR   = 00000102            

IE.SNC         = FFFFFFDD            I_PC             00000184            JPI$_LASTCTL   = 00000207            

IE.SPC         = FFFFFFFA            I_PROCNAME       00000128            JPI$_LASTPCB   = 0000031D            

IE.SQC         = FFFFFFDC            I_PS             00000188            JPI$_LASTPHD   = 00000412            

IE.SRE         = FFFFFFF2            I_PWRAST         0000019C            JPI$_LOGINTIM  = 00000206            

IE.STK         = FFFFFFC6            I_R0             00000164            JPI$_MEM       = 00000307            

IE.TMM         = FFFFFFB9            I_R1             00000168            JPI$_OWNER     = 00000303            

IE.TMO         = FFFFFFB6            I_R2             0000016C            JPI$_PAGEFLTS  = 0000040A            

IE.ULK         = FFFFFFAB            I_R3             00000170            JPI$_PGFLQUOTA = 0000040E            

IE.VER         = FFFFFFFC            I_R4             00000174            JPI$_PID       = 00000319            

IE.WAC         = FFFFFFE3            I_R5             00000178            JPI$_PPGCNT    = 0000030D            

IE.WAT         = FFFFFFE1            I_R6             0000017C            JPI$_PRCCNT    = 0000031B            

IE.WCK         = FFFFFFAA            I_RAD50NAME      00000124            JPI$_PRCLM     = 00000408            

IE.WER         = FFFFFFDF            I_RCVAST         00000198            JPI$_PRCNAM    = 0000031C            

IE.WLK         = FFFFFFF4            I_RCVMAIL        0000013C            JPI$_PRI       = 00000302            

IMAGECHAN      = 00000004            I_RUNFLAGS       00000190            JPI$_PRIB      = 00000309            

IS.BV          = 00000005            I_SCRATCH        00000000            JPI$_PROCPRIV  = 00000204            

IS.CC          = 00000301            I_STATE          0000014C            JPI$_STATE     = 00000306            

IS.CR          = 00000D01            I_TYPE           00000180            JPI$_STS       = 00000305            

IS.EOT         = 00000401            I_UIC            00000118            JPI$_TMBU      = 0000030B            

IS.ESC         = 00001B01            I_WAIT           00000154            JPI$_TQCNT     = 00000315            

IS.ESQ         = 00009B01            I_WAITSAVE       0000015C            JPI$_TQLM      = 00000410            

IS.PES         = 00008001            JPI$C_ADRTYPE  = 00000001            JPI$_UIC       = 00000304            

IS.PND         = 00000000            JPI$C_CTLTYPE  = 00000002            JPI$_USERNAME  = 00000202            

RSXSTART        - RSX INITIALIZATION, LOAD AND GO ROUTINES       22-AUG-1978 00:30:46   VAX-11 MACRO X0.3-11               Page  25

SYMBOL TABLE                                                                                                                    (12)



JPI$_VIRTPEAK  = 00000200            PSL_CM         = 0000001F            RSX$_ACCVIO    = 00068044            

JPI$_VOLUMES   = 00000205            PSL_FPD        = 0000001B            RSX$_BADLIBREF = 0006806C            

JPI$_WSAUTH    = 00000401            PSL_FU         = 00000006            RSX$_BADSTACK  = 0006804C            

JPI$_WSPEAK    = 00000201            PSL_TBIT       = 00000004            RSX$_BREAK     = 0006800C            

JPI$_WSQUOTA   = 00000402            QIOV_FILES     = 00000000            RSX$_EXITSTATUS= 00068180            

JPI$_WSSIZE    = 00000411            QIO_FLAGS        0000001C            RSX$_EXTERNABRT= 0006805C            

L$BASG           00000200            QIO_FUNCTION     0000001A            RSX$_ILLINST   = 0006802C            

L$BBLK           000000F0            QIO_IOSB         0000000E            RSX$_INSFDYNMEM= 00068054            

L$BDAT           0000001A            QIO_LUT          00000016            RSX$_IOT       = 00068014            

L$BEXT           000000EA            QIO_SECONDBLK    0000001E            RSX$_LIBNOTFND = 00068074            

L$BFLG           00000018            QIO_SIZE         00000022            RSX$_LOADERROR = 0006807C            

L$BHGV           0000000A            R$LDAT           00000016            RSX$_NONRSXEMT = 0006801C            

L$BHRB           000000EE            R$LFLG           00000014            RSX$_NOSUCHDEV = 000680C2            

L$BLDZ           0000000E            R$LHGV           00000006            RSX$_NOTSKIMG  = 00068064            

L$BLIB           00000020            R$LLDZ           0000000A            RSX$_ODDADDR   = 00068034            

L$BLUN           000000F2            R$LMXV           00000008            RSX$_PMD       = 000680CA            

L$BMXV           0000000C            R$LMXZ           0000000C            RSX$_RCVMBXSIZ = 0000012C            

L$BMXZ           00000010            R$LNAM           00000000            RSX$_RESERVED  = 00068004            

L$BOFF           00000012            R$LOFF           0000000E            RSX$_TBIT      = 0006803C            

L$BPAR           00000004            R$LSA            00000004            RSX$_TRAP      = 00068024            

L$BPRI           000000E6            R$LSEG           00000012            SV_ASTLVL        00000005            

L$BSA            00000008            R$LSIZ           0000001C            SV_DCL           00000002            

L$BSEG           00000016            R$LWND           00000010            SV_FLOATAST      0000000A            

L$BSGL           000000EC            READHEADER       00000143 R     07   SV_FRESTORE      00000003            

L$BTSK           00000000            READLABEL        00000117 R     07   SV_NOAST         00000004            

L$BWND           00000014            RSX$ALLOCATE     ********   X   07   SV_PENDWAIT      00000006            

L$BXFR           000000E8            RSX$ALUN         ********   X   07   SV_PWRAST        00000009            

LD$ACC         = FFFF8000            RSX$ASCR502      ********   X   07   SV_RCVAST        00000008            

LD$REL         = 00000004            RSX$ASSIGN       ********   X   07   SV_RESTORE       00000000            

LD$RSV         = 00004000            RSX$A_CLDEV      ********   X   07   SV_TRANSLATE     00000001            

LIBRARIES        000001D8 R     07   RSX$A_CODEV      ********   X   07   SV_WAIT          00000007            

LUTC_CR        = 00000005            RSX$A_EXITBLOCK  ********   X   07   SYS$ASCEFC       ********   X   07   

LUTC_DISK      = 00000002            RSX$A_IMPURE     ********   X   07   SYS$ASSIGN       ********   X   07   

LUTC_LP        = 00000004            RSX$A_LABEL      ********   X   07   SYS$DCLCMH       ********   X   07   

LUTC_RMS       = 00000000            RSX$A_POOL       ********   X   07   SYS$DCLEXH       ********   X   07   

LUTC_TAPE      = 00000003            RSX$A_REGSAV     ********   X   07   SYS$EXIT         ********   X   07   

LUTC_TRM       = 00000001            RSX$A_RESTART    ********   X   07   SYS$FAO          ********   X   07   

LUTV_CTRLC     = 00000002            RSX$A_SYDEV      ********   X   07   SYS$GETJPI       ********   X   07   

LUTV_CTRLO     = 00000000            RSX$A_TIIDEV     ********   X   07   SYS$SETEXV       ********   X   07   

LUTV_PRM       = 00000003            RSX$A_TIODEV     ********   X   07   SYS$SETPRN       ********   X   07   

LUTV_TI        = 00000001            RSX$CMTRAP       ********   X   07   S_PC             00000020            

LUT_CHAN         0000000C            RSX$C_SUBSYSTEM= 00000006            S_PS             00000024            

LUT_CHAR         00000014            RSX$DEALLOCATE   ********   X   07   S_R0             00000000            

LUT_CTRLC        00000034            RSX$ERROR        0000046F RG    07   S_R1             00000004            

LUT_FLAGS        0000000A            RSX$EXCEPTION    ********   X   07   S_R2             00000008            

LUT_INFONAME     00000030            RSX$FORCEEXIT    ********   X   07   S_R3             0000000C            

LUT_INFOUNIT     00000032            RSX$GETMSG       ********   X   07   S_R4             00000010            

LUT_LINK         00000000            RSX$INTERNEXIT   ********   X   07   S_R5             00000014            

LUT_REALNAME     00000020            RSX$MAPDEVNAM    ********   X   07   S_R6             00000018            

LUT_REF          00000008            RSX$PRINTERR     ********   X   07   S_TYPE           0000001C            

LUT_RSXNAME      00000010            RSX$R50CVT2      ********   X   07   TS$ACP         = 00002000            

LUT_RSXUNIT      00000012            RSX$RUNIMAGE     00000000 RG    07   TS$CHK         = 00000040            

LUT_SIZE         00000038            RSX$TRNLOGONE    ********   X   07   TS$CMP         = 00000080            

LUT_TYPE         00000018            RSX$T_SYSDISK    ********   X   07   TS$NET         = 00000200            

LUT_UNIT         00000020            RSX$T_SYSERROR   ********   X   07   TS$NHD         = 00004000            

OPEN_SYS_DEVS    0000040B R     07   RSX$T_SYSINPUT   ********   X   07   TS$NSD         = 00000400            

PSL_CC         = 00000000            RSX$T_SYSOUTPUT  ********   X   07   TS$PIC         = FFFF8000            

RSXSTART        - RSX INITIALIZATION, LOAD AND GO ROUTINES       22-AUG-1978 00:30:46   VAX-11 MACRO X0.3-11               Page  26

SYMBOL TABLE                                                                                                                    (12)



TS$PMD         = 00001000            

TS$PRV         = 00000100            

TS$RES         = 00000020            

TS$SLV         = 00000800            

W.BATT           00000006            

W.BFPD           0000000C            

W.BHVR           00000004            

W.BLGH           00000010            

W.BLPD           0000000E            

W.BLVR           00000002            

W.BNPD           0000000D            

W.BOFF           0000000A            

W.BPCB           00000000            

W.BSIZ           00000008            





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.           00000200      02     NOPIC   USR   CON   ABS   LCL NOSHR   EXE   RD    WRT BYTE  

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

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

ABS              0000099C      05     NOPIC   USR   CON   ABS   LCL NOSHR   EXE   RD    WRT LONG  

RSXPURE          00000031      06     NOPIC   USR   CON   REL   LCL NOSHR NOEXE   RD  NOWRT LONG  

RSXCODE          0000047B      07     NOPIC   USR   CON   REL   LCL NOSHR   EXE   RD  NOWRT BYTE  





THERE WERE NO ERRORS OR WARNINGS.

10604. BYTES LEFT IN FREE MEMORY POOL.

42. BYTES OF RECLAIMED MEMORY.

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

47 MLB DIR RDS - 725 GETS TO DEFINE 30 MACROS. 35 INTER. FILE WRITES. 

